我有Listview图像和文本,我可以用list.setOnItemClickListener方法显示图像和文本,当我点击listview项目然后打开新活动,我可以显示详细信息。在第二个活动我有一个按钮(回去),我想当我点击这个按钮listview将是我第一次点击的位置 例如,如果我点击listview 5项,然后当我点击后退按钮我想这5项将是第一个位置
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 :(得分:1)
不要调用finish();在你的第一个活动
答案 1 :(得分:0)
listView.setSelection(位置);将所选行发送到ListView的顶部。 listView.setSelectionFromTop(position,20);此方法还会发送ListView的所选行顶部。但是第二个参数(在这个方法20中)ListView的上边缘的距离。 (包括填充) 如果您需要完成第一个活动,则需要保存项目的位置,当单击后退按钮时,将保存的位置发送到您的活动。 (捆绑,静态等等......)
答案 2 :(得分:0)
<强> IDEA 强>
您只需创建第二个活动而不调用finish()。当用户点击第二个活动中的后退按钮时,只需调用onBackPressed();恢复第一次活动。
所以不要在第一个活动中使用finish()方法,并在secound活动中使用onBackPressed()。
你应该做什么:
在第一项活动中:
@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();
}
});