gpt4 book ai didi

android - java.lang.IllegalStateException : Could not find a method 错误

转载 作者:行者123 更新时间:2023-11-29 00:24:57 25 4
gpt4 key购买 nike

我有一个奇怪的事件。我有两部手机 4.1.2 和 2.3.6 android 版本,4.1.2 工作正常但较旧的手机会抛出此错误。

我的 XML:

  <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageButton

android:id="@+id/IB_Nearest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="IB_Nearest"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:src="@drawable/marker"
android:background="@null"
android:layout_margin="30dp"
/>
<ImageButton
android:id="@+id/IB_Category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="IB_Category"
android:src="@drawable/book"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:background="@null"
android:layout_margin="30dp"
/>
<ImageButton

android:id="@+id/IB_Map"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="IB_Map"
android:layout_below="@id/IB_Category"
android:layout_alignParentRight="true"
android:src="@drawable/mappp"
android:background="@null"
android:layout_margin="30dp"
/>




<ImageButton
android:id="@+id/IB_Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="IB_Search"
android:src="@drawable/search"
android:layout_below="@id/IB_Nearest"
android:layout_alignParentLeft="true"
android:background="@null"
android:layout_margin="30dp"
/>
<ImageButton

android:id="@+id/IB_NewPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="IB_NewPlace"
android:layout_below="@id/IB_Search"
android:layout_alignParentLeft="true"
android:src="@drawable/info"
android:background="@null"

/>

<ImageButton
android:id="@+id/IB_Statistics"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="IB_Statistics"
android:src="@drawable/chart"
android:layout_below="@id/IB_Map"
android:layout_alignParentRight="true"
android:background="@null"

/>
</RelativeLayout>
</ScrollView>

我的主要:

public class MainActivity extends FragmentActivity implements
LoaderManager.LoaderCallbacks<Cursor>{



@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);


}




public void IB_Map (View v){
Intent intent = new Intent(MainActivity.this, Map.class);
startActivity(intent);
}
public void IB_Category(View v){

Intent intent = new Intent(MainActivity.this, TreeChoice.class);
startActivity(intent);
}
public void IB_Nearest (View v){
Intent intent = new Intent(MainActivity.this, NearPlaces.class);
startActivity(intent);
}
public void IB_Search (View v){

Intent intent = new Intent(MainActivity.this, Search.class);
startActivity(intent);
}
public void IB_NewPlace (View v){
Intent intent = new Intent(MainActivity.this, NewPlace.class);
startActivity(intent);
}
public void IB_Statistics (View v){

Intent intent = new Intent(MainActivity.this, Statistics.class);
startActivity(intent);
}














/**
* Background Async Task to Load all product by making HTTP Request
* */
public class LoadAllProducts extends AsyncTask<String, String, String> {



/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();

}

/**
* getting All products from url
* */
protected String doInBackground(String... args) {

return null;
}

/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {

}



}













@Override
public android.support.v4.content.Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
// TODO Auto-generated method stub
return null;
}


public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
// TODO Auto-generated method stub

}


public void onLoaderReset(Loader<Cursor> arg0) {
// TODO Auto-generated method stub

}


@Override
public void onLoadFinished(
android.support.v4.content.Loader<Cursor> arg0, Cursor arg1) {
// TODO Auto-generated method stub

}


@Override
public void onLoaderReset(android.support.v4.content.Loader<Cursor> arg0) {
// TODO Auto-generated method stub

}

}

但是如果我使用这个监听器实现:

 final ImageButton rightButton = (ImageButton) findViewById(R.id.IB_Map);
rightButton.setOnClickListener(new ImageButton.OnClickListener() {
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, Map.class);
startActivity(intent);
}
});

一切正常,有人可以解释为什么会这样吗?

12-10 00:05:21.875: E/AndroidRuntime(28537): FATAL EXCEPTION: main
12-10 00:05:21.875: E/AndroidRuntime(28537): java.lang.IllegalStateException: Could not find a method IB_Map(View) in the activity class lt.whitegroup.workplaces.ui.MainActivity for onClick handler on view class android.widget.ImageButton with id 'IB_Map'
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.view.View$1.onClick(View.java:2131)
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.view.View.performClick(View.java:2485)
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.view.View$PerformClick.run(View.java:9080)
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.os.Handler.handleCallback(Handler.java:587)
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.os.Handler.dispatchMessage(Handler.java:92)
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.os.Looper.loop(Looper.java:130)
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.app.ActivityThread.main(ActivityThread.java:3687)
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.reflect.Method.invokeNative(Native Method)
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.reflect.Method.invoke(Method.java:507)
12-10 00:05:21.875: E/AndroidRuntime(28537): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
12-10 00:05:21.875: E/AndroidRuntime(28537): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
12-10 00:05:21.875: E/AndroidRuntime(28537): at dalvik.system.NativeStart.main(Native Method)
12-10 00:05:21.875: E/AndroidRuntime(28537): Caused by: java.lang.NoSuchMethodException
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.Class.getDeclaredMethods(Native Method)
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.ClassCache.getDeclaredPublicMethods(ClassCache.java:153)
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.ClassCache.getMethodsRecursive(ClassCache.java:216)
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.ClassCache.findMethods(ClassCache.java:175)
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.ClassCache.getMethods(ClassCache.java:167)
12-10 00:05:21.875: E/AndroidRuntime(28537): at java.lang.Class.getMethod(Class.java:961)
12-10 00:05:21.875: E/AndroidRuntime(28537): at android.view.View$1.onClick(View.java:2124)
12-10 00:05:21.875: E/AndroidRuntime(28537): ... 11 more

最佳答案

How exactly does the android:onClick XML attribute differ from setOnClickListener?问题可能对你有帮助。查看投票最多的答案。它提到:

Note that Android will look for the onClick method only in the current Activity. This is important to remember if you are using Fragments. Since even if you add the XML above using a fragment, Android will not look for the onClick method in the .java file of the fragment used to add the XML.

希望这能回答您为什么第一种方式不起作用。

关于android - java.lang.IllegalStateException : Could not find a method 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20481704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com