package button.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
//import android.view.View.OnClickListener;import android.widget.Button;import android.widget.LinearLayout;public class buttonact extends Activity {public  Button btn;    public  Button btn1;    public Button btn2;    public Button btn3;
    /** Called when the activity is first created. */
    @Override
    public   void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       btn=(Button)findViewById(R.id.next);        
       btn.setOnClickListener(new Button.OnClickListener(){  
public void onClick(View view){
    
   LinearLayout rellayout=new   LinearLayout (buttonact.this);
            setContentView(rellayout);
        Button btn1 = new Button(buttonact.this);
        btn1.setBackgroundResource(R.drawable.icon);
         // btn1.setImageDrawable(dw1);
       btn1.setText("电磁炉");
        btn1.setId(1);
        Button btn2 = new Button(buttonact.this);
        btn2.setText("鸭梨");
        btn2.setId(2);
        LinearLayout.LayoutParams lp1 = new   LinearLayout.LayoutParams(100,100,100);
        LinearLayout.LayoutParams lp2 = new   LinearLayout.LayoutParams(100,100,100);
        rellayout.addView(btn1, lp1 );
        rellayout.addView(btn2, lp2);
   
      gongnengku ll = new gongnengku();
        ll.SOCL();
       }
});
}
}package button.demo;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;public class gongnengku extends buttonact {/*** @param args* @return */private Button btn1;
          public  void SOCL(){    btn1.setOnClickListener(new OnClickListener(){
       
public void onClick(View v) {       
LinearLayout lin=new LinearLayout(gongnengku.this);
           
setContentView(lin);
           
LinearLayout.LayoutParams lp3 = new   LinearLayout.LayoutParams(100,100,100);          
       
Button btn3 = new Button(gongnengku.this);
       
btn3.setText("开关");
       
btn3.setId(3);
       
lin.addView(btn3,lp3);}
        });}
}
只要加入 gongnengku ll = new gongnengku();
        ll.SOCL();    
      就会出现  stopped unexpectedly  的问题
这是logcat的报错。07-19 06:54:38.295: WARN/dalvikvm(254): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
07-19 06:54:38.305: ERROR/AndroidRuntime(254): Uncaught handler: thread main exiting due to uncaught exception
07-19 06:54:38.315: ERROR/AndroidRuntime(254): java.lang.NullPointerException
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at button.demo.gongnengku.SOCL(gongnengku.java:16)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at button.demo.buttonact$1.onClick(buttonact.java:43)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.View.performClick(View.java:2364)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.View.onTouchEvent(View.java:4179)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.widget.TextView.onTouchEvent(TextView.java:6541)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.View.dispatchTouchEvent(View.java:3709)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.os.Looper.loop(Looper.java:123)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at android.app.ActivityThread.main(ActivityThread.java:4363)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at java.lang.reflect.Method.invokeNative(Native Method)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at java.lang.reflect.Method.invoke(Method.java:521)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
07-19 06:54:38.315: ERROR/AndroidRuntime(254):     at dalvik.system.NativeStart.main(Native Method)求高手帮我解决下。

解决方案 »

  1.   

    btn1没初始化 空指针异常..
    private Button btn1;
      public void SOCL(){
        btn1.setOnClickListener(new OnClickListener(){
        }
      

  2.   

    看不明白你要干什么 new个activity很多错啊 create都没Context也是null的。。
      

  3.   

    我就是想调用 gongnengku这个类中的public void SOCL()这个方法。
      

  4.   

    方法是可以调用  但是里面对象是空的 btn1=null Context=null
    里面的方法只有这句不报错
    LinearLayout.LayoutParams lp3 = new LinearLayout.LayoutParams(100,100,100);   
      

  5.   

     你这里定义了三个全局变量 public Button btn1;public Button btn2;public Button btn3;而你在代码中又分别定义了三个Button btn1 = new Button(buttonact.this);
    Button btn2 = new Button(buttonact.this);Button btn3 = new Button(buttonact.this);按钮!而你全局变量又没初始化,肯定抛空指针!