2013-11-11 4 views
0

В моем приложении мне не удалось создать экземпляр компонента активности info.I знаю, что на этот вопрос было дано много времени в этом форуме. Но я не могу найти правильное решение для решения той же error.I scartch моей головы за последние два days.Here моего кода,Невозможно выполнить активацию Информация об ошибке компонента

package com.example.sms; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
public class LoginActivity extends Activity { 
Button signup=(Button)findViewById(R.id.signup); 
Button signin=(Button)findViewById(R.id.signin); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.patient_login); 
    signup.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      Intent intentSignUP=new Intent(getApplicationContext(),SignupActivity.class); 
      startActivity(intentSignUP); 

} 
    }); 
signin.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      Intent intentSignUP=new Intent(getApplicationContext(),SignupActivity.class); 
      startActivity(intentSignUP); 

} 
    }); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.login, menu); 
    return true; 
} 

}

Это мой файл манифеста,

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.sms" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="17"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.sms.LoginActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.example.sms.SignupActivity"> 
    </activity> 

</application> 

Может ли кто-нибудь помочь мне найти, где я совершил ошибку. Любая помощь может быть очень благодарна.

+0

размещать свои LogCat ошибки – Manishika

+0

@Uday: вы используете любую банку внутри приложения –

+0

извините Sankar Ganesh:) Что подразумевается под банкой здесь. .. –

ответ

0

Проблема в том, что вы всегда сопоставить компоненты пользовательского интерфейса XML внутри OnCreate метод вашей деятельности, как я показано ниже

public class LoginActivity extends Activity { 
    Button signup = null; 
    Button signin = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.patient_login); 
    signup=(Button)findViewById(R.id.signup); 
    signin=(Button)findViewById(R.id.signin); 
    // your code 
    } 

Пожалуйста см. диаграмму жизненного цикла активности, метод onCreate, только компоненты пользовательского интерфейса, которые вы использовали в .xml, сопоставляются с вашей деятельностью и методом OnDestory, компоненты, которые когда-либо были использованы, освобождаются от памяти, аналогичные malloc и свободным в C. Примечание. : Не в сети te - это точка входа вашего приложения для Android, так как основным методом является точка входа в программу java/c/C++.

enter image description here

0

двигаться

Button signup=(Button)findViewById(R.id.signup); 
Button signin=(Button)findViewById(R.id.signin); 

линии внутри onCreate метода LoginActivity активности после setContentView, потому что в настоящее время вы пытаетесь получить доступ взгляды без установки макета для текущего Activity.do как:

public class LoginActivity extends Activity { 
Button signup,signin; //<<Declare Button here 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.patient_login); 
    // initialize buttons here 
    signup=(Button)findViewById(R.id.signup); 
    signin=(Button)findViewById(R.id.signin); 
    /// your code here.... 

} 
+0

@ Prosper K:) Да, это помогло мне. Но часто это показывает диалог принудительного закрытия. –

0

Это происходит потому, что вы инициализируете свою кнопку вне onCreate. только объявить его во всем мире и сделать findViewById внутри OnCreate после setContentView

public class LoginActivity extends Activity { 
Button signup; 
Button signin; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.patient_login); 
    signup=(Button)findViewById(R.id.signup); 
    signin=(Button)findViewById(R.id.signin); 
... 
} 
1

Так что ваша декларация кода после метода setContentView и этот код ставить и решать проблему,

Button signup=(Button)findViewById(R.id.signup); 
    Button signin=(Button)findViewById(R.id.signin); 

    signup.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 

       Intent intentSignUP=new Intent(getApplicationContext(),SignupActivity.class); 
       startActivity(intentSignUP); 

    } 
    }); 
    signin.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 

       Intent intentSignUP=new Intent(getApplicationContext(),SignupActivity.class); 
       startActivity(intentSignUP); 

    } 
    }); 
0

Все элементы интерфейса должны быть инициализированы в методах перекрытых активности

Как и в onCreate, onResume ... Здесь вы инициализируетесь в самом основном классе

код

public class LoginActivity extends Activity { 
Button signup=(Button)findViewById(R.id.signup); 
Button signin=(Button)findViewById(R.id.signin); 

Фактический код

public class LoginActivity extends Activity { 
    Button signup; 
    Button signin; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     signin=(Button)findViewById(R.id.signin); 
     signup=(Button)findViewById(R.id.signup); 
    } 
} 
+0

спасибо! Его помогает мне .. –

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