Android控件之ListView

来源:互联网 发布:sns 网络 营销 案例 编辑:程序博客网 时间:2024/03/29 15:30

xml:

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout      xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:app="http://schemas.android.com/apk/res-auto"      xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"      android:layout_height="match_parent" tools:context="com.zking.laci.android08.MainActivity">        <ListView          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:id="@+id/lv_list"          android:layout_weight="1"          ></ListView>      </LinearLayout>  



注意:如果不写android:descendantFocusability="blocksDescendants",ListView点击事件就会和Button的点击事件冲突,只出现Button的点击效果

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:orientation="horizontal" android:layout_width="match_parent"      android:layout_height="match_parent"      android:descendantFocusability="blocksDescendants"      >        <ImageView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:id="@+id/res_iv"          />      <TextView          android:layout_width="0dp"          android:layout_height="wrap_content"          android:layout_weight="1"          android:id="@+id/res_tv"          android:text="xx"          />      <Button          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:text="下载"          android:id="@+id/res_bt"          />  </LinearLayout> 

Java:

  import android.widget.Button;  import android.widget.ImageView;  import android.widget.TextView;    /**  * Created by Laci on 2017/6/9.  */    public class ItemTag {      public ImageView iv;      public TextView tv;      public Button bt;  }  



import android.support.v7.app.AppCompatActivity;  import android.os.Bundle;  import android.view.View;  import android.view.ViewGroup;  import android.widget.AdapterView;  import android.widget.BaseAdapter;  import android.widget.Button;  import android.widget.ImageView;  import android.widget.ListView;  import android.widget.SimpleAdapter;  import android.widget.TextView;  import android.widget.Toast;    import java.util.ArrayList;  import java.util.HashMap;  import java.util.List;  import java.util.Map;    public class MainActivity extends AppCompatActivity {      private ListView lv;      private int images[]={R.drawable.bird,R.drawable.cat,R.drawable.chicken};      private String titles[]={"小鸟","猫猫","火鸡"};      private Button bt;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            lv= (ListView) findViewById(R.id.lv_list);          lv.setAdapter(new MyAdapter());          lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {              @Override              public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                  Toast.makeText(MainActivity.this, "跳转到"+titles[position%titles.length], Toast.LENGTH_SHORT).show();              }          });        }      class MyAdapter extends BaseAdapter{            //指定的view有多少个          @Override          public int getCount() {              return 1000;          }            //内容          @Override          public Object getItem(int position) {              return titles[position%titles.length];          }            //每一行的下标          @Override          public long getItemId(int position) {              return position;          }            //拿到每一行的view          @Override          public View getView(final int position, View convertView, ViewGroup parent) {              //把布局文件转成view              if(convertView==null){                  convertView=getLayoutInflater().inflate(R.layout.res,null);                  //实例化自己写的实体类                  ItemTag it=new ItemTag();                  it.iv= (ImageView) convertView.findViewById(R.id.res_iv);                  it.tv= (TextView) convertView.findViewById(R.id.res_tv);                  it.bt= (Button) convertView.findViewById(R.id.res_bt);                  convertView.setTag(it);              }              ItemTag itg= (ItemTag) convertView.getTag();                //设置              itg.iv.setImageResource(images[position%titles.length]);              itg.tv.setText(titles[position%titles.length]);              itg.bt.setOnClickListener(new View.OnClickListener() {                  @Override                  public void onClick(View v) {                      Toast.makeText(MainActivity.this, "状态下载"+titles[position%titles.length], Toast.LENGTH_SHORT).show();                  }              });              return convertView;          }      }  }