2012-03-08 3 views
0

У меня есть активность, которая является вторым действием после основного действия моего приложения, которое имеет кнопки, которые, когда я нажимаю, я не могу выполнить какую-либо операцию. Я предполагаю, что проблема заключается в следующем двух файлах. Пожалуйста, дайте мне знатьНе удалось выполнить действие с помощью кнопок

package org.bhoomi.quotes; 
public class ApageActivity extends Activity implements OnClickListener{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.apage); 

    View aeButton=findViewById(R.id.ae_button); 
    aeButton.setOnClickListener(this); 
    View mgButton=findViewById(R.id.mg_button); 
    mgButton.setOnClickListener(this);  
} 
public void onClick(View v){ 
// TODO Auto-generated method stub 
switch (v.getId()) 
{ 
    case R.id.ae_button: 
       Intent i=new Intent(this,Apage.class); 
       startActivity(i); 
       break; 
     case R.id.mg_button: finish(); 
        break; 
} 
} 
} 

У меня уже есть файл QuotesActivity.java с почти одинаковым кодом он прекрасно работает, но не этот. и другой Цитата Manifest.xml

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

<uses-sdk android:minSdkVersion="8" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".QuotesActivity" 
     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=".Apage" 
     android:label="@string/menulabel"></activity> 
    <activity 
     android:name=".ApageActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.APAGE" /> 
     </intent-filter> 

    </activity> 
</application> 

</manifest> 

Я добавил мой LogCat ниже

D/AndroidRuntime(716): Shutting down VM 
W/dalvikvm(716): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
E/AndroidRuntime(716): FATAL EXCEPTION: main 
E/AndroidRuntime(716): java.lang.IllegalStateException: Could not find a method onClickHandler(View) in the activity class org.bhoomi.quotes.Apage for onClick handler on view class android.widget.Button with id 'mg_button' 
E/AndroidRuntime(716): at android.view.View$1.onClick(View.java:2059) 
E/AndroidRuntime(716): at android.view.View.performClick(View.java:2408) 
E/AndroidRuntime(716): at android.view.View$PerformClick.run(View.java:8816) 
E/AndroidRuntime(716): at android.os.Handler.handleCallback(Handler.java:587) 
E/AndroidRuntime(716): at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(716): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(716): at android.app.ActivityThread.main(ActivityThread.java:4627) 
E/AndroidRuntime(716): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(716): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
E/AndroidRuntime(716): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(716): Caused by: java.lang.NoSuchMethodException: onClickHandler 
E/AndroidRuntime(716): at java.lang.ClassCache.findMethodByName(ClassCache.java:308) 
E/AndroidRuntime(716): at java.lang.Class.getMethod(Class.java:985) 
E/AndroidRuntime(716): at android.view.View$1.onClick(View.java:2052) 
E/AndroidRuntime(716): ... 11 more 

ответ

1

попробовать

public void onClick(View v) 
{ 
    Intent localIntent; 
    switch (v.getId()) 
    { 
    case R.id.ae_button: 

    localIntent = new Intent(ApageActivity.this, Apage.class); 
    ApageActivity.this.startActivity(localIntent); 

case R.id.mg_button:  

finish(); 
break; 

    } 
} 

Также не уверен, если это имеет значение, но вместо

View aeButton=findViewById(R.id.ae_button); 
aeButton.setOnClickListener(this); 
View mgButton=findViewById(R.id.mg_button); 
mgButton.setOnClickListener(this); 

Попробуйте

Button aeButton=(Button) findViewById(R.id.ae_button); 
aeButton.setOnClickListener(this); 
Button mgButton=(Button) findViewById(R.id.mg_button); 
mgButton.setOnClickListener(this); 
+0

Я все еще получаю ту же ошибку, как и раньше. Я думаю, что я сделал что-то не так в файле манифеста. –

+0

вторая кнопка, которая позволяет ей выйти, даже если это не работает. –

0
Button aeButton=(Button) findViewById(R.id.ae_button); 
aeButton.setOnClickListener(this); 
Button mgButton=(Button) findViewById(R.id.mg_button); 
mgButton.setOnClickListener(this); 

setOnClickListener(new OnClickListener() { 

public void onClick(View v) {  

    switch (v.getId()) 
    { 
     case R.id.ae_button: 
      Intent i=new Intent(this,Apage.class); 
      startActivity(i); 
      break; 
    case R.id.mg_button: 
      finish(); 
       break; 
    } 
} 
}); 

попробовать эту цитату Manifest.xml

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

<uses-sdk android:minSdkVersion="8" /> 

<application 
android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" > 
<activity 
    android:name=".QuotesActivity" 
    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=".Apage" />  
<activity android:name=".ApageActivity" /> 

    </intent-filter> 
</activity> 
</application> 

</manifest> 
+0

Я пробовал использовать 'Код' \t Button aeButton = (Button) findViewById (R.id.ae_button); aeButton.setOnClickListener (this); Кнопка mgButton = (кнопка) findViewById (R.id.mg_button); mgButton.setOnClickListener (this); но я все равно получаю ту же ошибку. Я думаю, проблема в файле манифеста. Я все еще пытаюсь понять это –

+0

Я думаю, что вы не указали имя метода в вашем файле манифеста .... – NagarjunaReddy

0

Я уверен, Что проблема именно в вашей программе, но позвольте мне предложить один другой способ осуществления действия OnClick для ваши кнопки.

Шаг 1: Просто укажите кнопку в вашем XML-макете с помощью андроида: атрибут onClick со значением как имя метода.

Например:

<Button 
    .... 
    .... 
    android:onClick="onClickHandler"/> 

А теперь определить публичный метод с тем же именем:

public void onClickHandler(View v){ 

    /**do your stuffs whenever click action happen**/ 

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