Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在位于2个不同布局上的按钮上设置2 onClickListener()时导致异常_Java_Android_Exception_Onclick_Onclicklistener - Fatal编程技术网

Java 在位于2个不同布局上的按钮上设置2 onClickListener()时导致异常

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

我有一个问题,我似乎无法为位于2个不同布局上的2个单独按钮设置2个onClickListener,当运行程序时,它会导致出现异常

btnclicktosecondage按钮位于activity_main.xml布局中,而btnobjclicktofirstpage按钮位于第二个_activity.xml布局中

我的程序的java代码位于下面

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()也不例外。