[英].setText not working properly
因此,我处于要制作的应用程序的基本部分中。 我以前从未遇到过此错误,也不知道发生了什么。 我的.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);
}
});
}
setText
是一个函数。 因此,您需要将name
作为参数传递。 像loading_Text.setText(Name);
更改
loading_Text.setText=(Name);
对此:
loading_Text.setText(Name);
另外,如果您在textview中看不到任何内容,那是因为您在创建视图之前就已经获得了edittext的文本,因此我使用了on 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) {}
});
我希望这对你有用:)
我看到了两个问题:
第一:
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
。
这是因为您试图在初始化视图之前到达View的属性。 视图将在setContentView
之后初始化,并且您打算做的是在加载视图之前从R.layout.activity_main
中找到findViewById
。
同样,您需要移动此方法调用:
String Name = name_Edit.getText().toString();
在setContentView
之后的某个地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.