首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ListView向员工展示ArrayList的详细信息?

如何从ListView向员工展示ArrayList的详细信息?
EN

Stack Overflow用户
提问于 2014-01-24 07:34:37
回答 2查看 1.5K关注 0票数 0

这里我学习三个ArrayList (EmpName,EmpID和EmpPhone)。在这个过程中,我在每个数组中存储5个数据,然后我尝试在listview上显示所有数据,就像在列表视图的每一行中都有3 data.but一样,我没有得到准确的输出。我所有的code...Please帮助..。谢谢。

activity_main.xml

代码语言:javascript
复制
    <ListView
            android:id="@+id/main_listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    </ListView>

custom_checkbox.xml

代码语言:javascript
复制
<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

代码语言:javascript
复制
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;
        }

    }
}
EN

回答 2

Stack Overflow用户

发布于 2014-01-24 07:38:40

根据你的问题和问题,我建议你以下几点:

  1. 管理单个ArrayList:为同一个对象管理不同ArrayLists的将很难管理。就像您正在管理3个ArrayList来存储员工的信息一样。相反,应该管理一个ArrayList,其中Employee是一个类。
  2. 获取特定的Employee对象:--您可以通过positiongetView()方法中获取特定的Employee对象。
  3. 您正在自定义适配器的getView()方法中创建getView。根本不需要。

而且你的代码需要这么多的修改,最好你能找到任何一本android的书,并且很好地学习Android编程。

票数 1
EN

Stack Overflow用户

发布于 2014-01-24 07:41:39

您的代码将无法工作,因为您的适配器使用错误(而且根本没有设置为ListView )。不幸的是,您的代码需要太多的更改(例如,您应该更改新的对象Employee,您应该将这些对象的数组传递给适配器,并将Employee的bing值传递给item视图)才能在我的答案中解析它,所以只需阅读有关适配器的好教程,并尝试再次编写此代码:

http://www.javacodegeeks.com/2013/09/android-listview-with-adapter-example.html

http://www.vogella.com/tutorials/AndroidListView/article.html

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21326961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档