2016-02-13 130 views
0

我正在做计算机课程,每次我尝试运行我的应用程序并进入该活动时崩溃,并说不幸活动已停止。如果我从行(-----)中删除了代码的最后一部分,该活动就会出现并起作用。但有了它,它不起作用。有谁知道为什么这是这种情况,以及我如何解决它。当我点击按钮时,为什么我的程序崩溃?

import android.os.Bundle; 
    import android.support.v7.app.AppCompatActivity; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.ArrayAdapter; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.LinearLayout; 
    import android.widget.Spinner; 
    import android.widget.TextView; 

    public class BedroomDoorSigns extends AppCompatActivity { 
     private String[] wood; 
     private Spinner spinner; 
     private String[] colour; 
     private String[] size; 
     private Button mButton; 
     private LinearLayout mLayout; 
     private EditText mEditText; 


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

      wood = getResources().getStringArray(R.array.wood_list); 
      spinner = (Spinner) findViewById(R.id.wood_spinner); 
      colour = getResources().getStringArray(R.array.colour_list); 
      spinner = (Spinner) findViewById(R.id.colour_spinner); 
      size = getResources().getStringArray(R.array.size_list); 
      spinner = (Spinner) findViewById(R.id.size_spinner); 
      Button Buttons = (Button) findViewById(R.id.Cart); 
      mLayout = (LinearLayout) findViewById(R.id.linearLayout); 
      mEditText = (EditText) findViewById(R.id.editText); 
      mButton = (Button) findViewById(R.id.button); 
      mButton.setOnClickListener(onClick()); 
      TextView textView = new TextView(this); 
      textView.setText("New text"); 


      ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, wood); 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinner.setAdapter(dataAdapter); 

      ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, colour); 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinner.setAdapter(dataAdapter2); 

      ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, size); 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinner.setAdapter(dataAdapter3); 

     } 

public View.OnClickListener onClick() { 
     return new View.OnClickListener() { 


      public void onClick(View v) { 
       mLayout.addView(createNewTextView(mEditText.getText().toString())); 
      } 
     }; 
    } 

    public TextView createNewTextView(String text) { 
     final ViewGroup.LayoutParams lparams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
     final TextView textView = new TextView(this); 
     textView.setLayoutParams(lparams); 
     textView.setText("BASKET: " + text); 
     return textView; 
    } 
} 

谢谢

+2

职位就setOnclickListner“的方法您的logcat –

+0

@ 09Emi,请张贴您的logcat – cafebabe1991

回答

2

尝试这样

mButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mLayout.addView(createNewTextView(mEditText.getText().toString())); 
     } 
    }); 
0

显示java.lang.NullPointerException:试图调用虚拟方法无效android.widget.Button。 setOnClickListener(android.view.View $ OnClickListener)'在com.example.emily的空对象引用上.activity414timber.BedroomDoorSigns.onCreate(BedroomDoorSigns.java:41)在

您的按钮对象(mButton)为空,所以它是扔“NullPointerException异常”,当你调用该对象

相关问题