这里我采用三个ArrayList(EmpName,EmpID和EmpPhone)。 在这里,我在每个arraylist中存储5个数据,然后我试图显示 列表视图中的所有数据,如列表视图的每一行,将有3个数据。但我不是 获得准确的输出。在这里我的整个代码......请帮助......谢谢。
activity_main.xml中
<ListView
android:id="@+id/main_listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
custom_checkbox.xml
<TextView
android:id="@+id/custom_empname_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/custom_empid_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/custom_empphone_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
MainActivity.java
public class MainActivity extends Activity {
ArrayList<String> EmpName;
ArrayList<String> EmpID;
ArrayList<String> EmpMobile;
void getEmpDetails() {
EmpName.add("Jhon");
EmpName.add("Joy");
EmpName.add("Jain");
EmpName.add("Jason");
EmpName.add("Joky");
EmpID.add("1001");
EmpID.add("1002");
EmpID.add("1003");
EmpID.add("1004");
EmpID.add("1005");
EmpMobile.add("8179789878");
EmpMobile.add("8179789478");
EmpMobile.add("8179789378");
EmpMobile.add("8179789278");
EmpMobile.add("8179789678");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView)findViewById(R.id.main_listView1);
}
class ListAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return EmpName.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int index, View v, ViewGroup vg) {
// TODO Auto-generated method stub
v = getLayoutInflater().inflate(R.layout.custom_checkbox, null);
TextView t1 = (TextView)v.findViewById(R.id.custom_empname_textView);
TextView t2 = (TextView)v.findViewById(R.id.custom_empid_textView);
TextView t3 = (TextView)v.findViewById(R.id.custom_empphone_textView);
EmpName = new ArrayList<String>();
EmpID = new ArrayList<String>();
EmpMobile = new ArrayList<String>();
getEmpDetails();
ArrayAdapter<String> a1 =
new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, EmpName);
ArrayAdapter<String> a2 =
new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, EmpID);
ArrayAdapter<String> a3 =
new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, EmpMobile);
t1.setText((CharSequence) a1);
t2.setText((CharSequence) a2);
t3.setText((CharSequence) a3);
return null;
}
}
}
答案 0 :(得分:1)
根据您的问题和疑问,我建议您使用以下几点:
getView()
在position
方法中获取特定的Employee对象。您的代码需要进行大量更改,您可以更好地获取任何Android书籍并熟练掌握Android编程。
答案 1 :(得分:0)
您的代码无效,因为您使用的适配器错误(并且根本没有设置为ListView)。 不幸的是,您的代码需要进行太多更改(例如,您应该更改新对象Employee,您应该将这些对象的数组传递给适配器并将Employee的值更改为项目视图)以便在我的答案中解析它,所以只需阅读有关适配器并尝试再次编写此代码:
http://www.javacodegeeks.com/2013/09/android-listview-with-adapter-example.html
http://www.vogella.com/tutorials/AndroidListView/article.html
希望它有所帮助。