Android ListView布局

302 阅读1分钟
//需要创建依赖类BaseAdapter
public class MyAdite extends BaseAdapter {
    public MyAdite(List<Bena> benas, Context context) {
        this.benas = benas;
        this.context = context;
    }

    List<Bena> benas;
 Context context;
    @Override
    public int getCount()//显示数据
        return benas.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder=new ViewHolder() ;//创建
        if(convertView==null)
        {
            viewHolder=new ViewHolder(); //这样子会更快首次进来的时候会默认创建一个
            convertView= LayoutInflater.from(context).inflate(R.layout.list_item,parent,false);
            viewHolder.textView=convertView.findViewById(R.id.tv);
            convertView.setTag(viewHolder);
        }
        else 
        {
            viewHolder= (ViewHolder) convertView.getTag(); //对下面绑定
        }

        viewHolder.textView.setText(benas.get(position).getName()); //按钮获取他的名字 这样子节省时间

        //Log.e("leo",)
        return convertView;
    }

    private final class ViewHolder
    {
        TextView textView;
    }
}





图形文件1

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:layout_height="match_parent"

    android:layout_width="match_parent"

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical">



    <ListView

        android:id="@+id/lv"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        />





</LinearLayout>




设置文件间距

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:layout_height="match_parent"

    android:layout_width="match_parent"

    xmlns:android="http://schemas.android.com/apk/res/android">



    <TextView

        android:id="@+id/tv"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textSize="30sp"/>







</LinearLayout>

<!--



    android:textSize="30sp"

        设置间距为30sp





/>-->




模型层:用来显示按钮

package com.example.listview_xiahua_2;



public class Bena {

    String name;



    public String getName() {

        return name;

    }



    public void setName(String name) {

        this.name = name;

    }

}




//设置开始的类

public class MainActivity extends AppCompatActivity {



    private List<Bena> benas=new ArrayList<>();

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



        for(int i=0;i<100;i++)

        {

            Bena b1=new Bena();

            b1.setName("控件"+i);

            benas.add(b1);

        }

        ListView listView = findViewById(R.id.lv);   //获取一开始的ListVeiw

        listView.setAdapter(new MyAdite(benas,this)); //需要继承于BaseAdapter 然后吧自己传输进去





        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { //获取点击事件

            @Override

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //接收到点击的是第几个

                Log.e("leoo","弹出"+position);  //position获取当前点击的是第几个

            }

        });

    }

}




实现图片   可以用来滑动

实现图

 

 

//