.setText无法正常工作

时间:2013-10-07 23:01:30

标签: android

所以我在我想要制作的应用程序的基本部分。我以前从来没有弄过这个错误,我不知道发生了什么。我的.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);
        }
    });
}

3 个答案:

答案 0 :(得分:0)

setText是一个功能。所以你需要传递name作为参数。 比如loading_Text.setText(Name);

答案 1 :(得分:0)

更改

    loading_Text.setText=(Name);

到此:

    loading_Text.setText(Name);

另外,如果你在textview中没有看到任何内容,那是因为你在创建视图之前就得到了edittext的文本,我在编辑文本被更改时使用这样的edittext监听器来刷新String :

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) {}
       });

我希望这适合你:)

答案 2 :(得分:0)

我看到了两个问题:

<强>首先

loading_Text.setText=(Name);

应该是

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

您需要查看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之后的某个地方。