【发布时间】:2016-10-01 21:17:07
【问题描述】:
我自己也在学习 Android。我有使用 Arrayadapter 使用 listView 的知识。现在我要去学习片段。
是否可以使用 ArrayAdapter 和 listView 创建片段? 这里列表上的第一个片段应该是人名,单击右侧的片段会显示该人的详细联系方式。单击该详细联系地址后,它会打开电子邮件应用程序以向该联系人发送电子邮件。
我有这个问题是因为当我尝试在 xml 上为片段添加 ListView 时,它显示的错误表明使用了无效属性 Contact Activity(这是托管 Fragment 的 Activity)
public class ContactActivity extends Activity {
ListView listView;
//TextView textView;
ArrayAdapter<Contact> cAdapter;
private Contact[] myContact = {
new Contact("Rabin", "Awal", "+405-315-2027", "rawal@yahoo.com"),
new Contact("David", "Gilmour", "+455-315-2827", "david@gilmour.com"),
new Contact("James", "Hetfield", "+455-315-0026", "james@metallica.com"),
new Contact("Kirk", "Hammet", "+445-315-2227", "kirk@metallica.com"),
new Contact("Tom", "Morello", "+415-315-2497", "tom@tommorello.com"),
new Contact("Ron", "Thal", "+405-315-2007", "ron@ronthal.com")
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact);
//listView = (ListView) findViewById(R.id.contact_list_fragment_container);
//textView = (TextView) findViewById(R.id.contact_frag_list)
cAdapter = new ArrayAdapter<>(getApplicationContext(), R.layout.contact_list, myContact);
listView.setAdapter(cAdapter);
}
纯Java类
public class Contact {
private String fname, lname, phone, email;
public Contact(String fname, String lname, String phone, String email){
this.fname = fname;
this.lname = lname;
this.email = email;
this.phone = phone;
}
public String getFname() {
return fname;
}
public String getLname() {
return lname;
}
public String getEmail() {
return email;
}
public String getPhone() {
return phone;
}
public void setFname(String fname) {
this.fname = fname;
}
public void setLname(String lname) {
this.lname = lname;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return super.toString();
}
}
联系人活动的 xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_contact"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="edu.uco.rawal.p5rabina.ContactActivity">
<FrameLayout
android:id="@+id/contact_list_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:id="@+id/contact_detail_fragment_container"
android:layout_width="0dp"
android:layout_height="match_parent" />
</RelativeLayout>
【问题讨论】:
-
理想情况下,您应该为此使用自定义视图。
-
@lawonga 你能详细说明一下吗?我不知道自定义视图。
-
基本上你需要主/细节流设计
标签: java android listview android-fragments android-listfragment