我有一项服务通知用户,如果点击通知,则活动开始。活动包含文本视图和按钮。布局在R.layout.main中定义。如果我想要更改文本视图的文本或代码中的按钮,而不是在xml中,应用程序会崩溃......
我不知道为什么......这里是活动的代码
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView thema = (TextView) findViewById(R.id.thema);
TextView zeit = (TextView) findViewById(R.id.zeit);
TextView datum = (TextView) findViewById(R.id.datum);
TextView ort = (TextView) findViewById(R.id.ort);
Button change = (Button) findViewById(R.id.changeDetails);
Button save = (Button) findViewById(R.id.save);
Button ignore = (Button) findViewById(R.id.ignore);
Button cancel = (Button) findViewById(R.id.cancel);
//The string of the MainService class are not the problem they arent null...
thema.setText(MainService.thema);
zeit.setText(MainService.start);
datum.setText(MainService.end);
ort.setText(MainService.ort);
setContentView(R.layout.main);
}
这里是xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:id="@+id/tableLayout1" android:layout_height="fill_parent">
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:id="@+id/textView1" android:text="Thema:"></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" android:id="@+id/thema" android:text=""></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:id="@+id/textView3" android:text="Zeit:"></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" android:id="@+id/zeit"></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:id="@+id/textView5" android:text="Datum:"></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" android:id="@+id/datum"></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:id="@+id/textView7" android:text="Ort:"></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" android:id="@+id/ort"></TextView>
</TableRow>
<TableRow android:id="@+id/tableRow10" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="wrap_content" android:text="Details ändern" android:id="@+id/changeDetails"></Button>
</TableRow>
<View android:layout_height="2dip" android:background="#FF909090" />
<View android:layout_height="5dip" android:background="@android:color/black"/>
<TableRow android:id="@+id/tableRow9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:baselineAligned="false">
<Button android:layout_width="100dp" android:layout_height="wrap_content" android:text="Speichern" android:layout_weight="0" android:layout_gravity="center_vertical" android:id="@+id/save"></Button>
<Button android:layout_width="100dp" android:layout_height="wrap_content" android:text="Ignorieren" android:layout_weight="0" android:layout_gravity="center_vertical" android:id="@+id/ignore"></Button>
<Button android:layout_width="100dp" android:layout_weight="0" android:layout_height="wrap_content" android:text="Abbrechen" android:layout_gravity="center_vertical" android:id="@+id/cancel"></Button>
</TableRow>
由于
答案 0 :(得分:2)
您应该在充气视图之前调用setContentView(R.layout.main);
,而不是总是会遇到异常。
答案 1 :(得分:2)
请写这个
之后的 setContentView(R.layout.main)
行
super.onCreate(savedInstanceState)
行和之前
TextView thema = (TextView) findViewById(R.id.thema);
,
它将解决您的问题。
答案 2 :(得分:1)
setContentView(R.layout.main);
TextView thema = (TextView) findViewById(R.id.thema);
TextView zeit = (TextView) findViewById(R.id.zeit);
TextView datum = (TextView) findViewById(R.id.datum);
TextView ort = (TextView) findViewById(R.id.ort);
Button change = (Button) findViewById(R.id.changeDetails);
Button save = (Button) findViewById(R.id.save);
Button ignore = (Button) findViewById(R.id.ignore);
Button cancel = (Button) findViewById(R.id.cancel);
thema.setText("this is text");
哪个有效,但什么是MainService?