这是我的代码,问题出现了。
public void onClick(View arg0) {
switch (arg0.getId()){
case R.id.login:
String nama = user.getText().toString();
String sandi = pass.getText().toString();
new AttemptLogin().execute(nama,sandi);
break;
}
然后这是我在AttemptLogin()
上的代码class AttemptLogin extends AsyncTask<String,String,String>{
boolean failure = false;
protected String doInBackground(String... args) {
int success;
String username = args[0] ;
String password = args[1];
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username",username));
params.add(new BasicNameValuePair("password",password));
...etc
}
这是LogCat,
LogCat : null object reference
所以,我想从onClick()获取String,并将值传递给attemptLogin()上的doInBackground()。有什么解决方案? 对不起,这是新手的问题,请帮助我们 非常感谢您的关注:)
答案 0 :(得分:1)
查看您的错误,问题似乎出现在:
String nama = user.getText().toString();
String sandi = pass.getText().toString();
此时您的对象“user”或“pass”为NULL, 请检查你的oncreate方法
如果你在活动中那么
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.....
.....
EditText user= (EditText) findViewById(R.id.**XXXXXXX**); //error here
EditText pass= (EditText) findViewById(R.id.**YYYYYYY**); //error here
.....
.....
}
否则,如果你在Fragment
public View onCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
.....
.....
EditText user= (EditText)view. findViewById(R.id.**XXXXXXX**); //error here
EditText pass= (EditText)view. findViewById(R.id.**YYYYYYY**); //error here
.....
.....
return view;
}
答案 1 :(得分:0)
}