在XML中构建自定义文件,可以';无论如何,我都不能在Java中调用它
我正在处理ListView。我决定制作一个定制的listview。对于它,肯定需要另一个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
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();
}
}
);
}
}