2012-02-24 57 views
0

我是Android新手。我已经下载了一些代码来运行,但有问题:Android helloWorld带按钮

package t.t.t4; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 

public class Test4Activity extends Activity { 
    /** Called when the activity is first created. */ 
    OnClickListener listener1 = null; 
    Button button1; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     listener1 = new OnClickListener() { 
      public void onClick(View v) { 
       TextView text_view = (TextView) findViewById(R.id.TextView01); 
       CharSequence text_view_old = text_view.getText(); 
       text_view.setText("Before: "+ text_view_old +"\nAdded information: Hello World again !"); 
      } 
     }; 

     setContentView(R.layout.main); 
     button1 = (Button) findViewById(R.id.Button01); 
     button1.setOnClickListener(listener1); 
    } 
} 

R.id.TextView01是有错误的行。 R和R.id的含义是什么?

+0

把你的main.xml放在这里。 – 2012-02-24 07:18:28

+0

你可以请这里的错误? – 2012-02-24 07:18:41

+0

您是否阅读过[XML布局](http://developer.android.com/guide/topics/ui/declaring-layout.html)指南? – 2012-02-24 07:18:47

回答

2

您需要在super.onCreate();之后添加setContentView(R.layout.main);,因为所有的小部件都是在布局文件中声明的,所以首先需要加载它。这里textviewmain.xml文件中声明。

这就是为什么它会给出错误,因为在设置视图之前使用该textview。

您必须在您的main.xml文件中声明texview with id TextView01

+1

OP在设置之前未使用textview。该引用位于OnClickListener中,并且在点击之前不会执行。 – 2012-02-24 07:22:01

+0

他在做什么?请看他的代码? – 2012-02-24 07:23:08