2012-02-24 3 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

класть ваш основной.xml здесь. –

+0

вы можете исправить ошибку здесь? –

+0

Вы читали руководство [XML Layouts] (http://developer.android.com/guide/topics/ui/declaring-layout.html)? –

ответ

2

Вам необходимо добавить setContentView(R.layout.main); после super.onCreate();, потому что все виджеты объявлены в файле макета, поэтому сначала его необходимо загрузить. Здесь textview объявлен в файле main.xml.

Именно поэтому он дает ошибку, потому что вы используете это текстовое представление до того, как оно установит представление.

Вы должны объявить texview with id TextView01 в своем main.xml файле.

+1

OP не использует текстовое окно перед его установкой. Ссылка находится в OnClickListener и не выполняется до щелчка. –

+0

А что он делает КТО? см. его код, пожалуйста? –