0

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

3 回答 3

0

setText是一个函数。所以你需要name作为参数传递。像loading_Text.setText(Name);

于 2013-10-07T23:05:57.573 回答
0

改变

    loading_Text.setText=(Name);

对此:

    loading_Text.setText(Name);

此外,如果您在 textview 中看不到任何内容,那是因为您甚至在创建视图之前就获取了 edittext 的文本,我使用这样的 on 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) {}
       });

我希望这对你有用:)

于 2013-10-07T23:06:54.267 回答
0

我看到了两个问题:

第一的:

loading_Text.setText=(Name);

应该

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

您需要查看API 文档以了解如何调用该方法。

第二:

移动这些部分:

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.

这是因为您试图在视图初始化之前访问视图的属性。视图将在 之后初始化setContentView,而您打算做的是findViewByIdR.layout.activity_main它加载之前。

同样,您需要移动此方法调用:

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

之后的某个地方setContentView

于 2013-10-07T23:14:27.807 回答