【问题标题】:How to get current content view of activity?如何获取活动的当前内容视图?
【发布时间】:2017-01-05 09:20:23
【问题描述】:

我有一个内容视图,说主要活动上的主要设置,当单击一个按钮时,它会设置另一个内容视图,比如 setContentView(R.layout.sec_content)。我现在想要的是,当按下后退按钮时,如果当前视图是次要的,它应该设置主要内容,否则它应该关闭活动。我怎么做? 这是我的代码

public class Ch_1 extends AppCompatActivity {

Button men1, men2, men3;
TextView tv1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ch_1);

    men1 = (Button)findViewById(R.id.men1);
    men1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            setContentView(R.layout.activity_read__view);
            TextView tv1 = (TextView)findViewById(R.id.read_view);
            tv1.setText("This is text in READ_VIEW activity");




        }
    });


}

}

【问题讨论】:

  • 是的,我正在使用 Android Studio。
  • 对不起,我是安卓新手。
  • 与其创建两个布局为什么不为您的替代布局创建第二个活动,您的按钮将打开第二个活动并且您的 onBackPressed 会自然地运行(带您回到上一个活动(布局) ?
  • 是的,我能做到。但是我有很多按钮要添加到我的活动中并相应地设置文本,所以如果我使用活动,我必须创建许多活动。我想为我的所有按钮在相同的布局中设置文本。我只在返回按钮时卡住了。有什么办法可以解决这个问题。比如为 onBackButtonPressed 设置一个参数,如果 currentView == secondary {setContentView(R.layout.prim_content)} 否则关闭活动。
  • 创建 2 个 Activity 而不是布局,如果没有尝试切换布局的可见性而不是更改 ContentViews。

标签: android onbackpressed setcontentview


【解决方案1】:
public class MainActivity extends AppCompatActivity {

Boolean isClose = true;
Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(R.id.button);
}

public void onpressed(View view){
    isClose = false;
    setContentView(R.layout.second);
}

@Override
public void onBackPressed() {
    if (isClose){
        finish();
    } else {
        setContentView(R.layout.activity_main);
        isClose = true;
    }
}

}

【讨论】:

  • 如何设置 2 个 View,同时像 setContentView 一样两次,它已经有一个父视图。
  • 有一个布尔变量..如果它是真的,那么你就完成了你的活动,否则它将删除当前视图并添加新视图
  • 现在当我按下后退按钮时,它会将我带到上一个布局而不是关闭活动,这很好,但是当它返回到上一个布局时,现在没有按钮工作了吗?
  • 尝试使用 onclick 方法而不是像这样的 setonclickListern 我更新帖子看到。
  • 它不起作用。你能弄清楚可能的原因是什么。它在第一次尝试时工作正常,但是当我按返回按钮返回主要活动时它不起作用。
猜你喜欢
  • 1970-01-01
  • 2011-05-28
  • 2023-03-21
  • 2011-09-15
  • 1970-01-01
  • 2013-04-22
  • 2012-12-06
  • 2014-12-11
相关资源
最近更新 更多