ListView之二。

activity_main.xml:

<RelativeLayout  

        android:width="match_parent"

        android:height="60dp"

        android:background="@android:color/holo_blue_bright">

<Button 

       android:id= "@+id/btnBack"

       android:centerVertical="true"

       android:text="返回"

       android:width="wrap_content"

       android:height="wrap_content"

android:visibility = "gont"/>

<TextView

       android:width="wrap_content"

       android:height="wrap_content"

       android:text="学生列表"

       android:textSize="20sp"      

       android:centerVertical="true" 

      android:centerHorizontal="true"/>

</RelativeLayout>

<ListView 

      android:layout_width="wrap_content"

      android:layout_height = "wrap_content"

      android:id = "@+id/listViewStudent"

></ListView>

 

MainActivity.java:

     private ListView listViewStudent;

     this.listViewStudent = (ListView)this.findViewById(R.id.listViewStudent);

     StudentAdapter studentAdapter = new StudentAdapter(this.getData(),this);

     this.listViewStudent.setAdapter(studentAdapter);

     

     private List<Student> getData(){

      List<Student> data = new ArrayList<>();

      for(int idx = 0;idx<30;idx++){

         Student student = new Student();

         student.setHeight(160 + idx);

         student.setName("杨森");

         if(idx % 2 ==0){

        student.setSex("女");

}

else{

        student.setSex("男");

}       

         data.add(student);

     }

return data;

}

 

 

 

 

StudentAdapter.java extends BaseAdapter:

    public studentAdapter(List<Student>,Activity activity){

          this.studentList = studentList;

          this.activity = activity;

}

    private List<Student> studentList;

    private Activity activity;

/*
显示Item的数量
*/
@Override
public int getCount() {
System.out.println("-----getCount-----");
return this.studentList.size();
}
@Override
public Object getItem(int position) {
    System.out.println("-----getItem-----");
    return this.studentList.get(position);
}
@Override
public long getItemId(int position) {
    System.out.println("-----getItemId-----",+position);
    return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//System.out.println("-----getView----"+position);
Student student = this.studentList.get(position);

TextView tvName=(TextView)findViewById(R.id.tvName);
TextView tvHeight=(TextView)findViewById(R.id.tvHeight);
TextView tvSex=(TextView)findViewById(R.id.tvSex);
tvName.setName(student.getName());
tvheight.setName(student.getHeight());
tvSex.setName(student.getSex());


View view = View.inflate(this.activity,R.layout.listview_item_student,null);
return view;
}

 

转载于:https://www.cnblogs.com/xiaoxiaomeng/p/5682734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中ListView的二级菜单可以通过嵌套ListView实现。具体步骤如下: 1. 创建一个主ListView并设置AdapterAdapter中的数据包含一级菜单的内容; 2. 给主ListView的每个item设置点击事件,在点击事件中创建一个子ListView并设置AdapterAdapter中的数据包含二级菜单的内容; 3. 将子ListView添加到主ListView的item中。 以下是一个简单的示例代码: ``` public class MainActivity extends AppCompatActivity { private ListView mListView; private List<String> mMainList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); initView(); } private void initData() { mMainList = new ArrayList<>(); mMainList.add("主菜单1"); mMainList.add("主菜单2"); mMainList.add("主菜单3"); } private void initView() { mListView = findViewById(R.id.listview_main); MainAdapter mainAdapter = new MainAdapter(); mListView.setAdapter(mainAdapter); } private class MainAdapter extends BaseAdapter { @Override public int getCount() { return mMainList.size(); } @Override public Object getItem(int position) { return mMainList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_main, parent, false); holder = new ViewHolder(); holder.tvMain = convertView.findViewById(R.id.tv_main); holder.lvSub = convertView.findViewById(R.id.lv_sub); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } final String mainText = mMainList.get(position); holder.tvMain.setText(mainText); holder.tvMain.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SubAdapter subAdapter = new SubAdapter(); holder.lvSub.setAdapter(subAdapter); } }); return convertView; } } private static class ViewHolder { TextView tvMain; ListView lvSub; } private class SubAdapter extends BaseAdapter { private List<String> mSubList; public SubAdapter() { mSubList = new ArrayList<>(); mSubList.add("二级菜单1"); mSubList.add("二级菜单2"); mSubList.add("二级菜单3"); } @Override public int getCount() { return mSubList.size(); } @Override public Object getItem(int position) { return mSubList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_sub, parent, false); } String subText = mSubList.get(position); TextView tvSub = convertView.findViewById(R.id.tv_sub); tvSub.setText(subText); return convertView; } } } ``` 其中,item_main.xml和item_sub.xml分别对应主ListView的item布局和子ListView的item布局,可以根据自己的需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值