gpt4 book ai didi

java - Android Listview质疑 'android.R.id.list'

转载 作者:行者123 更新时间:2023-12-01 11:38:40 25 4
gpt4 key购买 nike

我看过和我的情况相同的案例,但可以克服它:(当我编译程序时,我得到了“你的内容必须有一个 id 属性为'android.R.id.list'的 ListView”

这是 logcat 和代码

日志猫:

04-20 03:42:53.787: E/AndroidRuntime(2547): FATAL EXCEPTION: main
04-20 03:42:53.787: E/AndroidRuntime(2547): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidbegin.menuviewpagertutorial/com.android.GoTrip.ListFindResult}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.os.Handler.dispatchMessage(Handler.java:99)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.os.Looper.loop(Looper.java:137)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.ActivityThread.main(ActivityThread.java:5103)
04-20 03:42:53.787: E/AndroidRuntime(2547): at java.lang.reflect.Method.invokeNative(Native Method)
04-20 03:42:53.787: E/AndroidRuntime(2547): at java.lang.reflect.Method.invoke(Method.java:525)
04-20 03:42:53.787: E/AndroidRuntime(2547): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
04-20 03:42:53.787: E/AndroidRuntime(2547): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-20 03:42:53.787: E/AndroidRuntime(2547): at dalvik.system.NativeStart.main(Native Method)
04-20 03:42:53.787: E/AndroidRuntime(2547): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.ListActivity.onContentChanged(ListActivity.java:243)
04-20 03:42:53.787: E/AndroidRuntime(2547): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.Activity.setContentView(Activity.java:1895)
04-20 03:42:53.787: E/AndroidRuntime(2547): at com.android.GoTrip.ListFindResult.onCreate(ListFindResult.java:59)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.Activity.performCreate(Activity.java:5133)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-20 03:42:53.787: E/AndroidRuntime(2547): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
04-20 03:42:53.787: E/AndroidRuntime(2547): ... 11 more
04-20 03:42:55.839: I/Process(2547): Sending signal. PID: 2547 SIG: 9

ListFindResult.java

   @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listfind);
Intent myIntent = getIntent();

searchkey = myIntent.getStringExtra("name");
findList = new ArrayList<HashMap<String, String>>();

new Finding().execute();

ListView lv = getListView();

lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String iid = ((TextView) view.findViewById(R.id.kode)).getText()
.toString();

}
});

}

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(ListFindResult.this);
pDialog.setMessage("Loading locations...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}

protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", searchkey));
JSONObject json = jParser.makeHttpRequest(url_search, "GET", params);

Log.d("Search trips: ", json.toString());

try {
int success = json.getInt(TAG_SUCCESS);

if (success == 1) {

ListLokasi = json.getJSONArray(TAG_ID);


for (int i = 0; i < ListLokasi.length(); i++) {
JSONObject c = ListLokasi.getJSONObject(i);

String textview1 = c.getString(TAG_ID);

HashMap<String, String> map = new HashMap<String, String>();

map.put(TAG_ID, textview1);
findList.add(map);
}
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}

return null;
}

protected void onPostExecute(String file_url) {
pDialog.dismiss();
runOnUiThread(new Runnable() {
public void run() {
ListAdapter adapter = new SimpleAdapter(
ListFindResult.this, findList,
R.layout.daftarlokasi, new String[] { TAG_ID},
new int[] { R.id.textview1});
setListAdapter(adapter);
}
});

listfind.xml

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

android:layout_width="match_parent"
android:layout_height="match_parent" >

<ListView android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent">

</ListView>

</RelativeLayout>

最佳答案

由于您使用的是 ListActivity,因此您必须使用 ID @android:id/list 而不是 xml 文件中的自定义 ID。

要解决此问题,请更改 listfind.xml:

<ListView android:id="@+id/listview" 
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>

<ListView android:id="@android:id/list" 
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>

关于java - Android Listview质疑 'android.R.id.list',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29735804/

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