Java 在位于2个不同布局上的按钮上设置2 onClickListener()时导致异常
我有一个问题,我似乎无法为位于2个不同布局上的2个单独按钮设置2个onClickListener,当运行程序时,它会导致出现异常 btnclicktosecondage按钮位于activity_main.xml布局中,而btnobjclicktofirstpage按钮位于第二个_activity.xml布局中 我的程序的java代码位于下面Java 在位于2个不同布局上的按钮上设置2 onClickListener()时导致异常,java,android,exception,onclick,onclicklistener,Java,Android,Exception,Onclick,Onclicklistener,我有一个问题,我似乎无法为位于2个不同布局上的2个单独按钮设置2个onClickListener,当运行程序时,它会导致出现异常 btnclicktosecondage按钮位于activity_main.xml布局中,而btnobjclicktofirstpage按钮位于第二个_activity.xml布局中 我的程序的java代码位于下面 public class MainActivity extends Activity { @Override protected void onCreat
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(getWindow().FEATURE_NO_TITLE);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
Button btnObjClickToGoToSecondPage = (Button) findViewById(R.id.btnClickToSecondPage);
Button btnObjClickToGoToFirstPage = (Button) findViewById(R.id.btnChangetoFirstPage);
btnObjClickToGoToFirstPage.setOnClickListener(
new Button.OnClickListener(){
@Override
public void onClick (View v)
{
setContentView(R.layout.second_activity);
}
}
);
btnObjClickToGoToSecondPage.setOnClickListener(
new Button.OnClickListener(){
@Override
public void onClick (View v)
{
setContentView(R.layout.activity_main);
}
}
);
} }
请帮我纠正问题,谢谢。请实现视图。Onclick listener not按钮。Onclick listener
btnObjClickToGoToFirstPage.setOnClickListener(
new View.OnClickListener(){
@Override
public void onClick (View v)
{
setContentView(R.layout.second_activity);
}
}
);
在安卓系统中,这不是切换页面的正确方式。使用两个活动来切换具有意图的页面
Intent newPage = new Intent (this, YourActivityNameForNewPage.class);
startActivity(newPage);
将以上代码放入按钮的
onClick()
如果要显示新页面,则可以启动新活动或启动新片段
更改contentView
是不正确的方法,不应该这样做
您可以参考有关活动的文档
假设您有另一个名为SecondActivity的活动
,下面是启动它的方法:
btnObjClickToGoToSecondPage.setOnClickListener(
new Button.OnClickListener(){
@Override
public void onClick (View v)
{
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
}
);
然后在新活动的XML中定义布局,即second_activity.XML
如果它们都有相似的布局,那么使用a也是一个不错的选择
基本上,您可以启动一个新的活动或片段来显示任何新内容或动态更改按钮的onClick()
上的数据
这个问题可能会进一步澄清您的疑问:
我认为单击侦听器内部的setContentView存在问题。您在第一个布局中初始化了按钮。首次单击后,布局将更改,按钮将没有有效的上下文。尝试用onclick Listeners中的日志替换SetContentView必须补充的是,我刚刚发现,当两个按钮都位于不同的布局上时,程序会导致异常。当两个按钮位于同一布局时,我对这段代码没有任何例外。我编辑了这个问题,因为我刚刚发现,当两个按钮位于不同布局时,程序会导致异常。当两个按钮位于同一布局中时,设置2 onClickListener()也不例外。