Андроид: Макет.addView () не работает
Когда я пытаюсь выполнить следующий код, я получаю ошибку. Эмулятор выдает мне это сообщение об ошибке, а затем приложение принудительно закрывается: приложение неожиданно остановилось. Что случилось?
import edu.chl.dat255.bluebanana.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ProMan extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout layout = (LinearLayout) findViewById(R.layout.main);
TextView t = new TextView(getApplicationContext());
t.setText("Hello world");
layout.addView(t);
}
}
3 ответа:
LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout); In your xml file main xml layout android:id="@+id/mainLayout"
Вы должны установить id для вашего корневого LinearLayout в main.xml как
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/mainLayout">
, а затем ссылаться на него как на
LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);
Вместо findViewById (R. layout.main);
Вы должны предоставить информацию о макете на ' TextView t . ширина макета и высота макета должны быть предусмотрены. Смотрите код ниже.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F); t.setLayoutParams(tvParams); layout.addView(t);