listview自定义适配器以及解决滑动冲突
生成一个类继承BaseAdpter继承方法
package adpter;
import android.content.Context;
import android.media.Image;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.application.R;
import java.util.List;
public class singadpter extends BaseAdapter {
Context context;
List<String> title;
List<String> jianjie;
List<Integer> images;
public singadpter(Context context,List<String> titles,List<String> jianjie,List<Integer> images){
super();
this.context=context;
this.title=titles;
this.jianjie=jianjie;
this.images=images;
}
@Override
public int getCount() {
return title.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = LayoutInflater.from(context).inflate(R.layout.list_shishi,null);//将布局文件绑定到View
ImageView imageView=view.findViewById(R.id.icon1);
TextView xwtitle=view.findViewById(R.id.text_biaoti);
TextView xwjianjie=view.findViewById(R.id.text_jianjie);
imageView.setImageResource(images.get(i));
xwtitle.setText(title.get(i));
xwjianjie.setText(jianjie.get(i));
return view;
}
}
最后将自定义的布局文件绑定并设置数据
然后在主页面listview绑定自定义的适配器即可
滑动冲突
Scrollview中放入listview可能会导致listview不能滑动
解决方法:给LIstView 添加一个触摸监听事件:
listView_shishi.setOnTouchListener(new ListView.OnTouchListener() {//添加触摸监听事件,解决滑动冲突
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);//当触摸按下时关闭主页面滑动
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});