2017-02-04 6 views
-3

このような活動でナビゲーション・ドロワーを使用しています。android:onClick doesnot work

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.activity_registration); 

    FrameLayout contentFrameLayout=(FrameLayout)findViewById(R.id.contentView); 
    getLayoutInflater().inflate(R.layout.activity_registration,contentFrameLayout); 
    register=(Button)findViewById(R.id.register); 
    rname=(EditText)findViewById(R.id.name); 
    rmobile=(EditText)findViewById(R.id.mobile); 
    remail=(EditText)findViewById(R.id.email); 
    rpassword=(EditText)findViewById(R.id.password); 
} 

    public void register(View v) 
    { 
     new DoRegistration().execute(); 
    } 
public class DoRegistration extends AsyncTask<Void,Void,Void> 
{ 
    JSONObject registrationResult; 

    @Override 
    protected Void doInBackground(Void... voids) 
    { 
     List<Pair> param=new ArrayList<>(); 

     param.add(new Pair("R_name",rname.getText().toString())); 
     param.add(new Pair("R_mobile",rmobile.getText().toString())); 
     param.add(new Pair("R_email",remail.getText().toString())); 
     param.add(new Pair("R_password",rpassword.getText().toString())); 

     registrationResult=serviceHelper.Registration(param); 

     return null; 
    } 

    @Override 
    protected void onPreExecute() 
    { 
     super.onPreExecute(); 

     register.setEnabled(false); 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) 
    { 

     super.onPostExecute(aVoid); 

     register.setEnabled(true); 

     if(registrationResult!=null) { 

      try { 
       if (registrationResult.getString("status").equals("done")) { 

        Intent LoginIntent = new Intent(Registration.this, Login.class); 
        LoginIntent.putExtra("Msg", "Registered Successfully.. Login Now"); 
        startActivity(LoginIntent); 

       } else { 
       } 

      } catch (Exception e) { 
      } 

     } 
    } 

} 

したがって、onclickはsetContentViewにアクセスする方法がありません。 レジスタ詳細エラーが発生したときにonclickメソッドが見つかりませんでした。

activity_registrationこのエラーはoccureなぜ

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="top|center"> 

      <Button 
       android:id="@+id/register" 
       android:layout_width="190dp" 
       android:layout_height="50dp" 
       android:text="@string/reg" 
       android:textSize="20sp" 
       style="@style/button" 
       android:background="@drawable/button" 
       android:onClick="register" 
       /> 
     </LinearLayout> 

+2

なぜ 'setContentView'がコメントされていますか?あなたが望むものは明確ではありません。 plsは – Raghunandan

+2

を精緻化findViewByIdはコンテンツビューなしで動作しません –

+1

...レイアウトXMLで設定した 'onClick'属性もそうではありません。 –

答えて

1

登録ボタンにリスナーを追加し、レイアウトからonclickトリガーを削除してみます。

View rootView = inflater.inflate(R.layout.activity_registration,contentFrameLayout); 

register = (Button) rootView.findViewById(R.id.register); 


register.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      new DoRegistration().execute(); 
      } 
     }); 
+0

それはうまく動作します.. – RamChithra