#java #android #button #dynamic
#java #Android #кнопка #динамическое
Вопрос:
Я работаю над проектом, в котором необходимо динамически добавлять кнопки. Но всякий раз, когда я запускаю свое приложение, приложение принудительно закрывается. Я узнал, что проблема заключается в том, когда я пытаюсь добавить кнопки.
package com.Feras.TestProject;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
public class TestProject extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AddAll();
// Set Text for the button in the Old Testament
}
public void AddAll() {
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.layout1);
Button btn = new Button(this);
btn.setText("MyButton");
linearLayout.addView(btn);
}
}
Комментарии:
1. Пожалуйста, используйте ‘adb logcat’, чтобы получить правильную трассировку стека приложения (оно находится в папке platform-tools в установленном Android SDk).
Ответ №1:
попробуйте вот так:
linearLayout.addView(
btn,
new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT)
);
Комментарии:
1. Я бы преувеличил, я не думаю, что добавление из кода — лучшая практика
Ответ №2:
ошибка возникнет только в том случае, если LinearLayout имеет значение null, убедитесь, что layout1 является допустимым элементом R.layout.main
Ответ №3:
Попробуйте следующее в своем пользовательском классе activity:
this.addContentView(call,
new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));