Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java findViewByID方法不接受listview_Java_Android_Listview - Fatal编程技术网

Java findViewByID方法不接受listview

Java findViewByID方法不接受listview,java,android,listview,Java,Android,Listview,我曾尝试编写一个简短的Android应用程序,但目前在我的活动中实现ListView时失败(它扩展了ListActivity)。我找到的所有解决方案都不起作用 findViewByID方法不接受R.id.listview作为参数,错误消息为: “错误:找不到符号变量listview” 然而,这是每个教程和示例执行此简单步骤的方式。我以我能想象到的任何方式更改了xml文件中的ID,现在将其返回到“android:ID=“@android:ID/list”“” 下面是活动: package com.

我曾尝试编写一个简短的Android应用程序,但目前在我的活动中实现ListView时失败(它扩展了ListActivity)。我找到的所有解决方案都不起作用

findViewByID方法不接受R.id.listview作为参数,错误消息为:

“错误:找不到符号变量listview”

然而,这是每个教程和示例执行此简单步骤的方式。我以我能想象到的任何方式更改了xml文件中的ID,现在将其返回到“android:ID=“@android:ID/list”“

下面是活动:

package com.example.roman.romansrecipes;
导入android.app.ListActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类MainActivity扩展了ListActivity实现
AdapterView.OnItemClickListener{
列表视图l;
String[]recipes={“R1”、“R2”、“R2”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
l=(ListView)findViewById(android.R.id.ListView);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 2,菜谱);
l、 设置适配器(适配器);
l、 SetonicClickListener(本);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
TextView温度=(TextView)视图;
Toast.makeText(this,temp.getText(),Toast.LENGTH_SHORT).show();
}
}
这是xml文件


我哪里做错了


首先,你不能像现在这样命名id,其次,你应该在活动中使用相同的id名称

更改您的
id
如下:

android:id="@+id/myListView"
然后:

l = (ListView) findViewById(R.id.myListView);

首先,你不能像现在这样命名id,其次,你应该在活动中使用相同的id名称

更改您的
id
如下:

android:id="@+id/myListView"
然后:

l = (ListView) findViewById(R.id.myListView);

因为
android.R.id.xxx
仅适用于android框架中的预定义值,而listView不是其中之一。对于您创建的id,请在不使用android的情况下使用
R.id.xxx

因为
android.R.id.xxx
仅适用于android框架中的预定义值,而listView不是其中之一。对于您创建的id,使用不带android的
R.id.xxx

您不必在
ListViewActivity
中初始化
ListView
ListViewActivity
将自动初始化
ListView
,就像您使用id
android:id/list
一样。要将adapter设置为
Listview
,只需调用
setListAdapter(adapter)。如果您想访问
ListView
,只需通过调用
getListView()
方法获取
ListView

更新您的
onCreate
方法

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
    //l = (ListView) findViewById(android.R.id.listview);
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, recipes);
   //l.setAdapter(adapter);
   setListAdapter(adapter);
   //l.setOnItemClickListener(this);
   getListView().setOnItemClickListener(this);

}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//l=(ListView)findViewById(android.R.id.ListView);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 2,菜谱);
//l、 设置适配器(适配器);
setListAdapter(适配器);
//l、 SetonicClickListener(本);
getListView().setOnItemClickListener(此);
}

检查您不必在
ListViewActivity
中初始化
ListView
ListViewActivity
将自动初始化
ListView
,就像您使用id
android:id/list
一样。要将adapter设置为
Listview
,只需调用
setListAdapter(adapter)。如果您想访问
ListView
,只需通过调用
getListView()
方法获取
ListView

更新您的
onCreate
方法

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
    //l = (ListView) findViewById(android.R.id.listview);
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_2, recipes);
   //l.setAdapter(adapter);
   setListAdapter(adapter);
   //l.setOnItemClickListener(this);
   getListView().setOnItemClickListener(this);

}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//l=(ListView)findViewById(android.R.id.ListView);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 2,菜谱);
//l、 设置适配器(适配器);
setListAdapter(适配器);
//l、 SetonicClickListener(本);
getListView().setOnItemClickListener(此);
}
检查关于

您的ListView的ID是“list”,而不是“ListView”,您应该在XML中这样声明:android:ID=“@+ID/list”。然后使用findviewbyd(R.id.list)获取它。ListView的id为“list”,而不是“ListView”,您应该在XML中这样声明:android:id=“@+id/list”。然后使用findviewbyd(R.id.list)获取它。