在同一活动中使用不同的布局

问题描述:

我有一个Activity,其中我使用了两种布局。在这两种布局中,我有不同的Buttons。从第一个Layout,当我将该函数调用到第二个Layout它的作品。但是,在第2号Layout的下一个Button调用第1号方法的时候,申请部门关闭。在同一活动中使用不同的布局

这是显示错误代码:我得到的错误,

Button.OnClickListener myOptionOnClickListener1 = new Button.OnClickListener() { 
    public void onClick(View v1) { 
     switch (v1.getId()) { 
      case R.id.next: 
       x++; 
       Toast.makeText(getBaseContext(), "is" + x, Toast.LENGTH_SHORT).show(); 
       setonListener(); 
       break; 
      case R.id.exit: 
       finish(); 
       break; 
     } 
    } 
}; 

// this code properly works. 

Button.OnClickListener myOptionOnClickListener = new Button.OnClickListener() { 
    public void onClick(View v) { 
     if (x < 5) { 
      setonListener(); 
     } else { 
      nextonListener(); 
     } 
    } 
}; 

07-11 12:42:55.001: E/AndroidRuntime(24227): java.lang.NullPointerException 

07-11 12:42:55.001: E/AndroidRuntime(24227): at com.infoways.quizcash.levelnxt.setonListener(levelnxt.java:81) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at com.infoways.quizcash.levelnxt$2.onClick(levelnxt.java:165) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at android.view.View.performClick(View.java:2532) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at android.view.View$PerformClick.run(View.java:9293) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at enter code hereandroid.os.Handler.handleCallback(Handler.java:587) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at android.os.Handler.dispatchMessage(Handler.java:92) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at android.os.Looper.loop(Looper.java:143) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at android.app.ActivityThread.main(ActivityThread.java:4277) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at java.lang.reflect.Method.invokeNative(Native Method) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at java.lang.reflect.Method.invoke(Method.java:507) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
07-11 12:42:55.001: E/AndroidRuntime(24227): at dalvik.system.NativeStart.main(Native Method) 

我解决不了问题。以下是setonListenernextonListener的代码。 setonListener第一次正常工作,但是当我从按钮调用它时会出现问题。

public void setonListener() 
{ 
    URL = "http://contest_id=100&game_id=1level="+count; 
    //Toast.makeText(getBaseContext(), URL, Toast.LENGTH_SHORT).show(); 
    String xml = parser.getXmlFromUrl(URL); // getting XML 
    Document doc = parser.getDomElement(xml); // getting DOM element 
    final NodeList nl = doc.getElementsByTagName(KEY_QUESTION); 

    // looping through all item nodes <item>s 
    for(int j=0;j<nl.getLength();j++) 
    { 
     Element e = (Element) nl.item(j); 
     listnew[j]=parser.getValue(e,KEY_QUEST); 
     options1[j]= parser.getValue(e, KEY_CHOICE1); 
     options2[j]= parser.getValue(e, KEY_CHOICE2); 
     options3[j]= parser.getValue(e, KEY_CHOICE3); 
    } 

    TextView question = (TextView)findViewById(R.id.question); 
    question.setText(listnew[x]); 

    opt1 = (Button)findViewById(R.id.opt1); 
    opt1.setText(options1[x]); 
    opt1.setOnClickListener(myOptionOnClickListener); 

    opt2 = (Button)findViewById(R.id.opt2); 
    opt2.setText(options2[x]); 
    opt2.setOnClickListener(myOptionOnClickListener); 

    opt3 = (Button)findViewById(R.id.opt3); 
    opt3.setText(options3[x]); 
    opt3.setOnClickListener(myOptionOnClickListener); 

    x++; 
}; 
+0

你可以提供方法setonListener的代码,问题出在这个方法 – Nermeen 2012-07-11 07:26:39

看来这个错误在你的setonListener()方法中的某处。也许你在执行之前做了些什么。调试你的setonListener和第81行的断点。如果问题仍然存在,请发布更多的代码。

+0

我已经添加了setonListener的代码。 – neethu 2012-07-11 08:43:25

+0

81是哪里? – 10s 2012-07-11 09:24:53

+0

谢谢你们..我解决了这个问题..问题出现在布局上... – neethu 2012-07-11 09:32:09