2016-05-16 87 views
0

这是我的代码,出现问题。如何解决空对象引用

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字符串( ),并将该值传递给attemptLogin()上的doInBackground()。它的解决方案是什么? 对不起,这是新手的问题,请大家帮忙 非常感谢你为你的atention :)

+2

你有初始化'user'和'pass'领域是否正确? –

+0

请更新您的问题以包括初始化用户,通过等的代码。这将要求您将Activity类作为一个整体加入,以便我们可以为您检查并提出解决方案。 – ishmaelMakitla

+0

@HelloWorld感谢您的回应,问题解决了,我没有在我的String变量上调用正确的ID。 – hambaBiasa

回答

1

看你的错误的问题似乎是在:

String nama = user.getText().toString(); 
String sandi = pass.getText().toString(); 

在这一点上你对象“用户”或“通行证”为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 
     ..... 
     ..... 

} 

否则,如果您是在片段

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; 

    } 
用户名和密码
+0

@VishweshJainkuniya和DaniloCalzetta非常感谢你们,感谢你们在android中的经验,并为我提供了一个很好的解决方案。 – hambaBiasa

0
  1. 检查NULL条件把它放在if条件
  2. 如果(用户!= NULL){ 字符串NAMA = user.getText()。的toString();

}

+0

非常感谢您的建议,我非常感谢您的解决方案。 – hambaBiasa

相关问题