我不明白为什么这个代码在我输入行后就会出错 EditText input =(EditText)findViewById(R.id.editText); 空白活动Hello World工作正常!
这是java代码.....
package com.example.abhishektiwari.deletethis;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
EditText input=(EditText) findViewById(R.id.editText);
}
这是xml代码..
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:orientation="vertical">
<EditText
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/editText"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:hint="Type the mathematical expression here"
/>
<Button
android:layout_alignParentEnd="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="Get SVG"
android:id="@+id/button"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Result"
android:textSize="30dp"
android:id="@+id/textView"
/>
答案 0 :(得分:2)
更改
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
EditText input=(EditText) findViewById(R.id.editText);
要
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText input=(EditText) findViewById(R.id.editText);
}
由于您无法访问成员函数之外的视图。
答案 1 :(得分:1)
修改您的活动
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText input=(EditText) findViewById(R.id.editText);
}
}
您无法访问成员函数之外的视图。
答案 2 :(得分:1)
这是因为当上下文仍然为null时,您在方法范围之外声明并初始化了EditText
。移动这一行
EditText input=(EditText) findViewById(R.id.editText);
在onCreate
之后的setContentView
内
答案 3 :(得分:1)
在onCreate中使用它,或者只是创建一个方法并将其放入其中并在onCreate中调用该函数。
EditText input=(EditText) findViewById(R.id.editText);
答案 4 :(得分:0)
您无法在活动生命周期中调用findViewById()
之前的onCreate()
等活动方法。成员变量初始化太早了。在onCreate()
之后将初始化移至setContentView()
。