У меня возникли проблемы с добавлением кнопки в макет, который я создал в XML. Вот что я хочу добиться:Добавить кнопку в макет программно
//some class
else {
startActivity(new Intent(StatisticsScreen.this, ScreenTemperature.class));
}
////
//ScreenTemperatureClass
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this is where I call another class that
//displays a nice graph
setContentView(new GraphTemperature(getApplicationContext()));
}
Я хочу добавить Button
к этому новому экрану так, что он будет отображаться ниже графика. Я попытался создать LinearLayout
вид, а затем создать Button
и добавить его к этой точке зрения, но я просто получить NullPointerException
S ..
Любая помощь будет оценена. Благодаря
EDIT # 1
Вот что я пытался использовать что создал NullPointerException
и 'заставить близких':
Button buybutton;
LinearLayout layout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GraphTemperature(getApplicationContext()));
layout = (LinearLayout) findViewById(R.id.statsviewlayout);
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(buyButton);
}
А вот ошибка LogCat:
ERROR/AndroidRuntime(293): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.weatherapp/com.weatherapp.ScreenTemperature}: java.lang.NullPointerException
ERROR/AndroidRuntime(293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
ERROR/AndroidRuntime(293): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
ERROR/AndroidRuntime(293): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
ERROR/AndroidRuntime(293): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
theres, очевидно, больше строк, связанных с этой ошибкой в logcat, не уверен, хотите ли вы этого?
EDIT # 2
Так я попробовал метод bhups:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GraphTemperature GT = new GraphTemperature(getApplicationContext());
layout = (LinearLayout) findViewById(R.id.statsviewlayout);
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(GT); // line 27
layout.addView(buyButton);
setContentView(layout);
}
Этот метод произвел ту же ошибку LogCat, как указано выше, NullPointerException
, показывая, что было что-то делать с линии нет. 27, который является строкой кода layout.addView
. Есть идеи? Еще раз спасибо
показать нам, что вы пробовали и LogCat вы получите, что работает, поэтому мы пытаемся выяснить, почему вы получите NPE в любом случае рассмотреть вопрос о создании 'макета screen_temperature.xml' и использования, что в 'setContentView()'. вы можете добавить в xml свой пользовательский вид, указав весь пакет, а не просто имя (например: ' ') –
bigstones
создать линейный макет (11) и добавить GraphTemp отображает объект и объект кнопки в ll. Затем установите для содержимого представление активности значение ll. т.е. setContentView (11); – bhups