【问题标题】:How to go back to previos view with back button (android)如何使用后退按钮返回上一个视图(android)
【发布时间】: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


【解决方案1】:

http://developer.android.com/training/implementing-navigation/ancestral.html

这个网站解释得很好。只需在 Google 上快速搜索 Android 向上导航即可。

还有更多您正在寻找的内容。你想赶上导航。

@Override
public void onBackPressed(){
    //switch to list view
}

【讨论】:

  • 但它们不是活动。只有带有文本视图的视图
  • 那么,你说我可以继续使用那些单独的布局,而不是那些背压的实际片段?
  • 当然可以。 setContentView(listView) 当然可以像以前使用 layoutInflater 一样制作列表视图
  • 但是。 @GabeSechan 告诉你的内容非常聪明。您可以按照我解释的方式进行操作,正确的方法是使用 Fragments
  • 我无法将这些 onbackpressed 方法放在哪里。这一切都给出了此处不允许注释的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多