Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
查找Android XML标记_Android_Xml - Fatal编程技术网

查找Android XML标记

查找Android XML标记,android,xml,Android,Xml,我目前正在尝试修复错误“您的内容必须具有id属性为“android.R.list”的ListView” 我在Stack Exchange上找到了以下问题的答案: 我已经应用了解决方案,但我想问一个问题: “那么如何引用android定义的XML标记? 但由于声誉制度的原因,我无法对这个小问题发表评论。对此我深表歉意,但有人能回答这个问题吗 先谢谢你 供您参考,这是我的列表视图: <?xml version="1.0" encoding="utf-8"?> <LinearLay

我目前正在尝试修复错误“您的内容必须具有id属性为“android.R.list”的ListView”

我在Stack Exchange上找到了以下问题的答案:

我已经应用了解决方案,但我想问一个问题:

“那么如何引用android定义的XML标记?

但由于声誉制度的原因,我无法对这个小问题发表评论。对此我深表歉意,但有人能回答这个问题吗

先谢谢你

供您参考,这是我的列表视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>
</LinearLayout>
这就是我得到的错误:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.denny.phonebelt/com.example.denny.phonebelt.SettingsMenu}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
如果问题是由另一个bug出于某种原因引起的,我将在这里介绍实际代码:

    final Button ExceedingLimitButton = (Button)findViewById(R.id.ExceedingLimitButton);
    ExceedingLimitButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final AlertDialog.Builder ExceedingLimitDialog = new AlertDialog.Builder(SettingsMenu.this);
            //Setting ListView
            LayoutInflater inflater = getLayoutInflater();
            View convertView = inflater.inflate(R.layout.exceeding_dialog, null);
            lv = (ListView) convertView.findViewById(android.R.id.list);
            ArrayAdapter<String> adapter = new ArrayAdapter<>(SettingsMenu.this, android.R.layout.simple_list_item_single_choice, ExceedingSelection);
            lv.setAdapter(adapter);
            lv.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    int SelectedItem = Integer.parseInt(ExceedingSelection[position]);
                    PhoneBelt.setExceedInt(SelectedItem);
                    String Selection = getString(R.string.Selection);
                    String message = (Selection + SelectedItem);
                    Toast toast = Toast.makeText(SettingsMenu.this, message, Toast.LENGTH_LONG);
                    toast.show();
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                    Toast toast = Toast.makeText(SettingsMenu.this, "You have not selected anything", Toast.LENGTH_SHORT);
                    toast.show();
                }
            });
            ExceedingLimitDialog.setView(convertView);
            ExceedingLimitDialog.setTitle(R.string.Exceeding_Limit_Title);
            ExceedingLimitDialog.setMessage(R.string.Exceeding_Limit_Message);
            ExceedingLimitDialog.setCancelable(true);
            AlertDialog alert = ExceedingLimitDialog.create();
            alert.show();
        }
    });
final Button ExceedingLimitButton=(Button)findViewById(R.id.ExceedingLimitButton);
ExceededGlimitButton.setOnClickListener(新视图.OnClickListener()){
@凌驾
公共void onClick(视图v){
final AlertDialog.Builder ExceedGlimitDialog=新建AlertDialog.Builder(SettingsMenu.this);
//设置ListView
LayoutInflater充气机=getLayoutInflater();
视图转换视图=充气机。充气(R.layout.u对话框,空);
lv=(ListView)convertView.findviewbyd(android.R.id.list);
ArrayAdapter=新的ArrayAdapter(SettingsMenu.this,android.R.layout.simple\u list\u item\u single\u choice,ExceedingSelection);
低压设置适配器(适配器);
lv.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
int SelectedItem=Integer.parseInt(ExceedingSelection[position]);
电话带。设置超出(选择编辑项);
String Selection=getString(R.String.Selection);
字符串消息=(选择+选择编辑项);
Toast Toast=Toast.makeText(setingsmenu.this、message、Toast.LENGTH\u LONG);
toast.show();
}
@凌驾
未选择公共无效(AdapterView父级){
Toast Toast=Toast.makeText(setingsmenu.this,“您没有选择任何内容”,Toast.LENGTH\u SHORT);
toast.show();
}
});
ExceedGlimitDialog.setView(convertView);
ExceedGlimitDialog.setTitle(R.string.ExceedGlimitDialog.setTitle);
ExceedGlimitDialog.setMessage(R.string.Exceeding_Limit_Message);
ExceedGlimitDialog.setCancelable(真);
AlertDialog alert=ExceedGlimitDialog.create();
alert.show();
}
});
而不是:

android:id="@android:id/list"
写:

 android:id="@+id/list"
您必须声明一个新ID并用它标记列表。

而不是:

android:id="@android:id/list"
写:

 android:id="@+id/list"
您必须声明一个新ID并用它标记列表。

使用以下方法:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>
</LinearLayout>

使用以下方法:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>
</LinearLayout>

您对java代码的引用是
超过了英语
。但是在xml中是
list
。您还应该创建新的id

所以

如果使用
android:id=“@android:id/ExceedingList”
表示您试图引用已创建的id(
ExceedingList

然后打电话

ListView lv = (ListView) convertView.findViewById(R.id.ExceedingList);

这可能会帮助您

您对java代码的引用是
超过了英语
。但是在xml中是
list
。您还应该创建新的id

所以

如果使用
android:id=“@android:id/ExceedingList”
表示您试图引用已创建的id(
ExceedingList

然后打电话

ListView lv = (ListView) convertView.findViewById(R.id.ExceedingList);

这可能会帮助您

将.xml放在此处将.xml放在此处将您在
活动
中查找的id更改为
R.id.list
嗯,仍然不起作用。我还尝试了android.R.id.list,错误是什么?不可能是一样的,因为那些补丁你没有使用安卓.R.id.list是的,还是一样的。这一定与我没有看到的另一个ID有关?在查看您的代码后,我在
public void onClick(View v)
方法中看到了问题。您已经编写了
lv=(ListView)convertView.findviewbyd(android.R.id.list)
这意味着您尚未更改正在查找的id。请将您在
活动中查找的id更改为
R.id.list
嗯,仍然不起作用。我还尝试了android.R.id.list,错误是什么?不可能是一样的,因为那些补丁你没有使用安卓.R.id.list
是的,还是一样的。这一定与我没有看到的另一个ID有关?在查看您的代码后,我在
public void onClick(View v)
方法中看到了问题。您已经编写了
lv=(ListView)convertView.findviewbyd(android.R.id.list)这意味着您尚未更改要查找的id。