listview의 다중 항목 전시
listview ,
public class MainActivity extends AppCompatActivity {
private ListView lv;
private List list=new ArrayList<>();
private MyAdapter adapter;
private int type;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv= (ListView) findViewById(R.id.lv);
adapter=new MyAdapter();
lv.setAdapter(adapter);
LoadData();
}
//
private void LoadData() {
RequestParams params=new RequestParams("http://v.juhe.cn/toutiao/index?type=top&key=2f092bd9ce76c0257052d6d3c93c11b4");
x.http().get(params, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
Gson gson=new Gson();
Data data=gson.fromJson(result,Data.class);
list.addAll(data.getResult().getData());
adapter.notifyDataSetChanged();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
//listview adapter
class MyAdapter extends BaseAdapter {
final int TYPE_1 = 0;
final int TYPE_2 = 1;
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
Data.ResultBean.DataBean ddd = list.get(position);
type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_1:
convertView = View.inflate(MainActivity.this, R.layout.item1, null);
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.image1 = (ImageView) convertView.findViewById(R.id.image1);
break;
case TYPE_2:
convertView = View.inflate(MainActivity.this, R.layout.item3, null);
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.image1 = (ImageView) convertView.findViewById(R.id.image1);
holder.image2 = (ImageView) convertView.findViewById(R.id.image2);
holder.image3 = (ImageView) convertView.findViewById(R.id.image3);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(ddd.getTitle());
switch (type) {
case TYPE_1:
Glide.with(MainActivity.this).load(ddd.getThumbnail_pic_s()).into(holder.image1);
break;
case TYPE_2:
Glide.with(MainActivity.this).load(ddd.getThumbnail_pic_s()).into(holder.image1);
Glide.with(MainActivity.this).load(ddd.getThumbnail_pic_s02()).into(holder.image2);
Glide.with(MainActivity.this).load(ddd.getThumbnail_pic_s03()).into(holder.image3);
break;
}
return convertView;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
String p2 = list.get(position).getThumbnail_pic_s02();
if (p2 == "" || p2 == null) {
return TYPE_1;
} else {
return TYPE_2;
}
}
}
class ViewHolder{
TextView title;
ImageView image1,image2,image3;
}
}
:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.