Zel*_*lah 1 android nullpointerexception android-virtual-device
我正在尝试为Android创建一个程序,该程序将以文本形式读取,然后打印出来,jsut以便习惯使用Android的I/O. 但是,每当我在AVD上运行它时,它会在LogCat中返回一个错误,说我的代码中存在NullPointerException,因此它"无法实例化ComponentInfo活动".
我找不到我指的是什么零.
这是我的代码:
import android.app.*;
import android.os.*;
import android.view.View;
import android.view.View.*;
import android.widget.*;
public class ButtonTestActivity extends Activity {
TextView tv = (TextView) findViewById(R.id.textView1);
EditText et = (EditText) findViewById(R.id.edittext);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.Enter);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
tv.setText(et.getText().toString());
}
});
}
Run Code Online (Sandbox Code Playgroud)
}
这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Button
android:id="@+id/Enter"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
有谁知道是什么原因引起的?非常感谢.
mma*_*len 16
您需要在onCreate中实例化视图,并且在setContentView之后,在您通过setContentView方法设置Activities布局之前,Activity不知道您要引用哪些视图.如果这不能解决问题,那么如果您从LogCat发布堆栈跟踪,那么确切的行号是已知的,这将有所帮助.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.textView1);
EditText et = (EditText) findViewById(R.id.edittext);
Button b = (Button) findViewById(R.id.Enter);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
tv.setText(et.getText().toString());
}
});
}
Run Code Online (Sandbox Code Playgroud)