2013-10-07 4 views
0

Так что я в основной части моего приложения, которое я хочу сделать. Я никогда не получал эту ошибку раньше, и я не знаю, что происходит. Мой .setText выдает сообщение об ошибке «setText не может быть разрешен или не является полем». Я осмотрелся и не смог найти свою проблему. Я считаю, что делаю это правильно. Если бы кто-нибудь мог мне помочь, это было бы здорово!.setText не работает должным образом

MainActivity.java:

public class MainActivity extends Activity { 

final TextView loading_Text = (TextView)findViewById(R.id.textView4); 
final EditText name_Edit = (EditText)findViewById(R.id.editText1); 
//String Values 
    String Age=""; 
    String Name = name_Edit.getText().toString(); 

//Int Values 
    int Gender = 0; //1 male | 2 female 
    int Group = 0; //Different groups for ages and genders 
    int save_Info = 0; //save info to phone 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button male_Button= (Button)findViewById(R.id.button1); 
    Button female_Button = (Button)findViewById(R.id.button2); 


    male_Button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Gender++;//Adds one to show this user is a male. 

      loading_Text.setText=(Name); 
     } 
    }); 
} 
+0

Изменить на loading_Text.setText (Имя); – nedaRM

ответ

0

я увидел две проблемы:

Первое:

loading_Text.setText=(Name);

Должно быть

loading_Text.setText("The text you want to set");

You» le nee d, чтобы посмотреть, как позвонить методу API document.

Второе:

Переместить эти части:

final TextView loading_Text = (TextView)findViewById(R.id.textView4); 
final EditText name_Edit = (EditText)findViewById(R.id.editText1); 
//String Values 
    String Age=""; 
    String Name = name_Edit.getText().toString(); 

внутри onCreate, как это:

public class MainActivity extends Activity { 

TextView loading_Text; 
EditText name_Edit; 
... 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    loading_Text = (TextView)findViewById(R.id.textView4); 
    name_Edit = (EditText)findViewById(R.id.editText1); 

Или вы получите NullPointerException.

Это связано с тем, что вы пытались достичь свойства View перед инициализацией представления. Просмотр будет инициализирован после setContentView, и то, что вы намеревались сделать, было findViewById от R.layout.activity_main, прежде чем оно было загружено.

Кроме того, вам нужно перенести этот вызов метода:

String Name = name_Edit.getText().toString();

где-то после setContentView.

0

setText является функцией. Поэтому вам необходимо передать name в качестве аргумента. как loading_Text.setText(Name);

0

Изменить

loading_Text.setText=(Name); 

к этому:

loading_Text.setText(Name); 

Кроме того, если вы не видите ничего в TextView, это происходит потому, что вы получаете текст в EditText перед вами даже создайте свои представления, я использую прослушиватель edittext, как это, чтобы обновить строку при изменении текста редактирования:

name_Edit.addTextChangedListener(new TextWatcher() { 

      public void afterTextChanged(Editable s) { 

       Name = name_Edit.getText().toString();  
      } 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

      public void onTextChanged(CharSequence s, int start, int before, int count) {} 
     }); 

Я надеюсь, что это работает для вас :)

Смежные вопросы