Reputation: 25
I am doing my coursework for computing and every time i try and run my app and go onto this activity it crashes and says unfortunately activity has stopped. If i delete the last part of the code from the line (-----) down, the activity appears and works. But with it, it doesn't work. Does anyone know why this is the case and how i could fix it.
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;
}
}
Thank you
Upvotes: 0
Views: 96
Reputation: 81
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.emily.activity414timber.BedroomDoorSigns.onCreate(BedroomDoorSigns.java:41) at
your button object (mButton) is null and so it is throwing 'nullpointerexception' when you call 'setOnclickListner' method on that object
Upvotes: 0
Reputation: 9131
try like this
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mLayout.addView(createNewTextView(mEditText.getText().toString()));
}
});
Upvotes: 2