2017-02-04 9 views
-3

Я использую навигационный ящик в действии как это.android: onClick does not 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

<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 developate – Raghunandan

+2

findViewById не собирается работать без набора содержимого –

+1

... и не является атрибутом 'onClick', который вы установили в XML-формате. –

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^