2014-01-17 3 views
0

У меня есть просмотр с изображениями и текстом, и я могу показать изображение и текст с помощью метода list.setOnItemClickListener, когда я нажму элемент listview, а затем откройте новую активность, и я смогу показать подробности. на второй активности у меня есть одна кнопка (Вернуться назад), и я хочу, когда я нажму эту кнопку listview, будет позиция, которую я щелкнул в первый раз , например, если бы я нажал на список 5 элементов, а затем, когда я нажму кнопку «Назад», я хочу этот элемент 5 будет первой позицииПозиция прокрутки Listview

list.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       journal = (TextView) view.findViewById(R.id.smalljournal); 

       tittle = (TextView) view.findViewById(R.id.smalltitle); 
       description = (TextView) view 
         .findViewById(R.id.smallDescription); 
       smalllink = (TextView) view.findViewById(R.id.smalllink); 
       DateTime = (TextView) view.findViewById(R.id.smallDateTime); 
       smallstatID = (TextView) view 
         .findViewById(R.id.smallstatID); 
       String Stringjournal = journal.getText().toString(); 
       String Stringtittle = tittle.getText().toString(); 
       String Stringdescription = description.getText().toString(); 
       String Stringlink = smalllink.getText().toString(); 
       String StringdateTime = DateTime.getText().toString(); 
       String StringstatID = smallstatID.getText().toString(); 
       HideKeyBoadr(); 
       Intent in = new Intent(MainActivity.this, Result.class); 
       in.putExtra("KEY_journal", Stringjournal); 
       in.putExtra("KEY_title", Stringtittle); 
       in.putExtra("KEY_description", Stringdescription); 
       in.putExtra("KEY_link", Stringlink); 
       in.putExtra("KEY_pubDate", StringdateTime); 
       in.putExtra("KEY_statID", StringstatID); 

       String url = itemList.get(position).get(
         MainActivity.KEY_image); 
       if (url.endsWith("-c.jpg")) 
        url = url.replace("-c.jpg", ".jpg"); 

       in.putExtra("Bitmap", url); 

       startActivity(in); 
       overridePendingTransition(R.anim.trans_left_in, 
         R.anim.trans_left_out); 
       finish(); 

      } 
     }); 
    } 

вторая активность

BackButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Intent in = new Intent(Result.this, MainActivity.class); 
      startActivity(in); 

      overridePendingTransition(R.anim.trans_right_in, 
        R.anim.trans_right_out); 
      finish(); 

     } 
    }); 

программа работает идеально, но когда я нажимаю кнопку назад ListView показывает снова .....

+0

выписка [Похожий вопрос] (http://stackoverflow.com/questions/3014089/maintain-save-restore-scroll-position-when-returning-to-a-listview) – hypd09

ответ

1

не называют отделку(); по вашей первой деятельности

+0

я удалил его, но проблема не решена :( –

0

listView.setSelection (position); отправьте выбранную строку в список ListView. listView.setSelectionFromTop (позиция, 20); этот метод также отправляет выбранную верхнюю строку списка ListView. Но второй аргумент (в этом методе 20) - расстояние от верхнего края ListView. (включить прокладку) Если вам необходимо завершить первую операцию, вам нужно сохранить позицию элемента, а при нажатии кнопки «Назад» отправить сохраненную позицию в свою активность. (Bundle, статический класс и т.д ...)

+0

нет нет, я просто хочу, когда я нажимаю кнопку «назад», элемент «ведьма», я нажал первую позицию. –

+0

. Думаю, вы хотите переключить нажатый элемент и позицию первого элемента? – Fr099y

0

IDEA

Просто вам нужно сделать, это создать вторую деятельность без вызова отделки(). Когда пользователь нажимает кнопку «Назад» во второй активности, просто вызывайте onBackPressed(); для возобновления первой деятельности.

Поэтому не используйте метод finish() в первом действии и используйте onBackPressed() в активности secound.

Что вы должны сделать:

В первой деятельности:

@Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
      //your logic gose here 
      // start new activity without finishing current activity 
} 

В новой деятельности:

просто позвоните onBackPressed(); во втором действии. Он завершит второе действие и автоматически возобновит первое действие.

BackButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      //call onBackPressed(); to resume privious activity. 
      onBackPressed(); 

     } 
    }); 
+0

onBackPressed(); что это такое. для возобновления предыдущего первого действия? –

+0

Я отредактировал ответ, просто попробуйте его. Надеюсь, он сработает. –

+0

тот же код снова :( –

Смежные вопросы