2015-09-06 83 views
0

每次我尝试我的android非常简单的代码时,出现此问题 不幸的是.apk已停止。Android TextView.setText(“”)停止我的应用程序

当我删除uid.setText(“txt”)时,应用程序正常运行。

我的活动代码

  public class MainActivity extends Activity { 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      TextView uid = (TextView)findViewById(R.id.textView1); 
      uid.setText("txt"); 
      setContentView(R.layout.activity_main); 

我的xml文件

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView2" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="71dp"/> 
+1

'''super.onCreate()'后面直接调用'setContentView(R.layout.activity_main)'' – skywall

+1

移动'setContentView(R.layout.activity_main);'在当前Activity的布局中使用'findViewById'查找任何视图之前 –

+0

@ρяσѕρєяK那是工作谢谢 – JavaFan

回答

0

在机器人的所有用户界面被写入XML。当一个活动开始时,它需要知道显示给用户的是哪个UI xml,所以当我们使用布局文件调用setContentView时,会呈现该特定的xml。 您的应用程序崩溃的原因是因为您在textview上调用.setText()方法,但android活动无法理解要引用哪个textview。和PS一样,你可以有多个具有相同ID的UI元素,但是在不同的文件中。

因此,在引用任何UI元素之前,一起调用setContentView()方法。

1

移动的setContentView(R.layout.activity_main);向上。在下面的代码所示

@Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     TextView uid = (TextView)findViewById(R.id.textView1); 
     uid.setText("txt");