Java 带有自定义项的Android ListView
我想用一个自定义项目执行一个Java 带有自定义项的Android ListView,java,android,Java,Android,我想用一个自定义项目执行一个ListView。“常规”项是一个具有两个文本视图的全宽图像,另一个图像类似于图标 比如: 实现这一点的最佳方式是什么 谢谢您应该通过扩展BaseAdapter、ArrayAdapter等来声明自己的ListView适配器。在那里,您可以编写自己的getView()方法实现,该方法负责查看ListView中的每个项目 在getView()方法中,您可以使用布局从XML中膨胀视图,并用所需数据填充它。您可以通过创建自己的自定义布局来实现这一点,该布局可以在ListVi
ListView
。“常规”项是一个具有两个文本视图的全宽图像,另一个图像类似于图标
比如:
实现这一点的最佳方式是什么
谢谢您应该通过扩展
BaseAdapter
、ArrayAdapter
等来声明自己的ListView
适配器。在那里,您可以编写自己的getView()
方法实现,该方法负责查看ListView
中的每个项目
在
getView()
方法中,您可以使用布局从XML中膨胀视图,并用所需数据填充它。您可以通过创建自己的自定义布局来实现这一点,该布局可以在ListView的getView方法中作为一个项目进行膨胀,并且与@nikis所说的相同的布局也将应用于所有布局
以下是一个简单易懂的示例,可以满足您的需要。:)
给你。。这至少会在某种程度上引导你。我在组中有一张图片,三个文本视图。在您的例子中,有一个图像视图和两个文本视图,这是唯一的区别 我是如何实现它的: 步骤1:在MainActivity中,我制作了一个自定义适配器,它有5个东西,一个Imageview和4个TextView 代码如下:
public class ListViewExample extends Activity {
ArrayList<String> QuestionForSliderMenu = new ArrayList<String>();
ArrayList<String> NAME = new ArrayList<String>();
ArrayList<String> STATE = new ArrayList<String>();
ArrayList<String> LATITUDE = new ArrayList<String>();
ArrayList<String> LONGITUDE = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_layout);
ListView listView = (ListView) findViewById(R.id.customlistView1);
MyAdapter adapter = new MyAdapter(this, QuestionForSliderMenu);
listView.setAdapter(adapter);
try {
yourjson();
} catch (Exception e) {
e.printStackTrace();
}
}
//Just for example. You can do anything to get in your array list.
public void yourjson() {
NAME = new ArrayList<String>();
STATE = new ArrayList<String>();
LATITUDE = new ArrayList<String>();
LONGITUDE = new ArrayList<String>();
try {
JSONObject json = new JSONObject(loadJSONFromAsset());
JSONArray array = json.getJSONArray("cities");
QuestionForSliderMenu = new ArrayList<String>();
Log.d("Cities: ", array.toString());
for (int my = 0; my <= array.length(); my++) {
JSONObject c = array.getJSONObject(my);
String name = c.getString("name");
String state = c.getString("state");
String latitude = c.getString("latitude");
String longitude = c.getString("longitude");
NAME.add(name);
STATE.add(state);
LATITUDE.add(latitude);
LONGITUDE.add(longitude);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
最后,两个XML
一:你的ListView布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/customlistView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
第二:listview的项目
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/customimageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cities"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/State"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="States"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/Latitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Latitude"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/Longitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Longitude"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
我希望这能帮助你回答你的问题……:)
如果你喜欢我的答案,并认为它很有帮助,请接受它:) 你来这里之前试过搜索吗?这方面肯定有十几个教程,我试过了,但我想怎么做就怎么做。sry请至少包括相关文章的基本内容,这样,如果文章不存在,仍然有答案。至少给他一些基本信息,而不仅仅是给他一个教程链接。我是毕业生,我能够提供帮助:)这个答案有用吗
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/customlistView1"
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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/customimageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cities"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/State"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="States"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/Latitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Latitude"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/Longitude"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Longitude"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>