Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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
在XML中构建自定义文件,可以';无论如何,我都不能在Java中调用它_Java_Android_Android Layout_Listview - Fatal编程技术网

在XML中构建自定义文件,可以';无论如何,我都不能在Java中调用它

在XML中构建自定义文件,可以';无论如何,我都不能在Java中调用它,java,android,android-layout,listview,Java,Android,Android Layout,Listview,我正在处理ListView。我决定制作一个定制的listview。对于它,肯定需要另一个xml文件(定制的)。我构建了它,但我不能用java来调用它。查看以下行,因为行布局始终为红色,错误为“无法解析符号”行布局: ListAdapter myadapter=new ArrayAdapter(这个,android.R.layout.row_布局,cars); 以下是我自定义的xml文件行布局的代码: <?xml version="1.0" encoding="utf-8"?> &l

我正在处理ListView。我决定制作一个定制的listview。对于它,肯定需要另一个xml文件(定制的)。我构建了它,但我不能用java来调用它。查看以下行,因为行布局始终为红色,错误为“无法解析符号”行布局:

ListAdapter myadapter=new ArrayAdapter(这个,android.R.layout.row_布局,cars);
以下是我自定义的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"
    android:id="@+id/row_layout">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/myTextView1"
            android:textSize="32dp"
            android:textStyle="italic"/>
</LinearLayout>

以下是我的Java文件代码:

package com.ranatalha.mylistapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String [] cars=
                {
                "Mehran",
                "Corolla",
                "Faw v2",
                "Honda City"
                };

        //to link my above created array with in a list
        //ListAdapter myadapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, cars);

        ListAdapter myadapter = new ArrayAdapter<String> (this, android.R.layout.row_layout, cars);

        //referring the listview createdin xml
        ListView mylistview = (ListView) findViewById(R.id.mylistView);

        //connecting listview with adapter
        mylistview.setAdapter(myadapter);

        //Catching clicks on listview
        mylistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    //implements method
                    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                        String CarsPicked = "Your Picked The Car: " + String.valueOf(adapterView.getItemAtPosition(position));
                        Toast.makeText(MainActivity.this, CarsPicked, Toast.LENGTH_SHORT).show();

         }
         }
         );
         }
         }
package com.ranatarha.mylistapp;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
串车=
{
“梅赫兰”,
“花冠”,
“一汽v2”,
“本田城”
};
//将上面创建的数组链接到列表中的
//ListAdapter myadapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,cars);
ListAdapter myadapter=new ArrayAdapter(这个,android.R.layout.row_布局,cars);
//引用listview createdin xml
ListView mylistview=(ListView)findViewById(R.id.mylistview);
//将listview与适配器连接
mylistview.setAdapter(myadapter);
//捕捉listview上的单击
mylistview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
//实现方法
公共虚线单击(AdapterView AdapterView,视图视图,内部位置,长l){
String CarsPicked=“您挑选的汽车:”+String.valueOf(adapterView.getItemAtPosition(position));
Toast.makeText(MainActivity.this,CarsPicked,Toast.LENGTH_SHORT).show();
}
}
);
}
}

而不是
android.R.layout.row\u layout
我们应该使用
R.layout.row\u layout
,因为android.R可以访问操作系统的资源,而R可以帮助导入自定义布局。感谢@BlackBelt在上面的评论部分帮助我:)

android.R
使用内置的android资源。试试
droid.R.layout.simple\u list\u item1


或者创建自己的布局,并从android调用其ID。R访问操作系统的资源。如果你想使用自己的自定义布局,你必须导入应用程序的R。
android.R.layout。row_布局
应该是
R.layout。row_布局
@Blackbelt Hey man,你是最好的。struggling花了一个小时做了这个简短的事情。太简单了。谢谢你(Uuuuuuu:()()()))非常感谢@VikingPingvin,你的建议对我也有用:)
package com.ranatalha.mylistapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String [] cars=
                {
                "Mehran",
                "Corolla",
                "Faw v2",
                "Honda City"
                };

        //to link my above created array with in a list
        //ListAdapter myadapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, cars);

        ListAdapter myadapter = new ArrayAdapter<String> (this, android.R.layout.row_layout, cars);

        //referring the listview createdin xml
        ListView mylistview = (ListView) findViewById(R.id.mylistView);

        //connecting listview with adapter
        mylistview.setAdapter(myadapter);

        //Catching clicks on listview
        mylistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    //implements method
                    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                        String CarsPicked = "Your Picked The Car: " + String.valueOf(adapterView.getItemAtPosition(position));
                        Toast.makeText(MainActivity.this, CarsPicked, Toast.LENGTH_SHORT).show();

         }
         }
         );
         }
         }