【发布时间】:2015-12-18 21:22:59
【问题描述】:
这是我的主要内容。当点击 btn 时,listview 活动开始:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,ListEvents.class);
startActivity(intent);
}
});
这是我的列表事件活动。它设置列表的视图,当单击其中一个列表视图时,它会在另一个视图中显示文本视图。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getBaseContext();
db = new DBHandler(mContext);
listView = getLayoutInflater().inflate(R.layout.activity_list, null);
showView = getLayoutInflater().inflate(R.layout.show_description, null);
setContentView(listView);
lv = (ListView) findViewById(R.id.list);
lv.setAdapter(new CustomAdapter(this, events));
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
desc = (TextView) showView.findViewById(R.id.desc);
desc.setText(events.get(position).getDescription());
setContentView(showView);
}
});
}
}
当 showview (textview) 显示后,我点击返回按钮,而不是进入 listview,它进入 main(我点击 btn 进入 listview)。我在这里使用了片段:
listView = getLayoutInflater().inflate(R.layout.activity_list, null);
showView = getLayoutInflater().inflate(R.layout.show_description, null);
为什么不去?
【问题讨论】:
-
目前的去向是正确的地方。如果你想改变后退按钮覆盖
onBackPressed或使用Fragments 来控制后退堆栈 -
大声笑我以为我使用了那些 listView = getLayoutInflater().inflate(R.layout.activity_list, null); showView = getLayoutInflater().inflate(R.layout.show_description, null);那么,处理碎片不是那么容易吗?
-
那些不是片段。你所做的只是膨胀两个独立的布局。真的,你在做什么是非常错误的。您应该将其移植到实际的片段中。
-
为什么错了,它们是简单的布局。我不想用碎片让它变大。
-
通过 setContentView(showView);您只是在重用 listevents 活动,因此当您按下后退按钮时,它肯定会导航回其先前的活动,即主要活动。您可以更改它以导航到新活动或拦截 onbackpressed 并执行 setContentView(listView);再次正确。
标签: android listview android-listview