어댑터에서 이미지를 출력하는 Listfragmen을 사용합니다.두 개의 열 표시 ListFragment
이미지를 두 개의 열로 표시해야합니다.
listView 조각을 넣으려고하지만 데이터가 표시되지 않습니다.
이미지를 표시하는 두 개의 열이 있어야합니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@id/android:list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_weight="1">
</ListView>
<ListView android:id="@id/android:list" android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
어댑터 코드
public class MyAdapter extends ArrayAdapter<Map<String, Object>> {
private final Activity context;
private final List<Map<String, Object>> datas;
public MyAdapter(Activity context, List<Map<String, Object>> datas) {
super(context, R.layout.items, datas);
this.context = context;
this.datas = datas;
}
class ViewHolder {
public TextView tvHeader;
public ImageView ivImage;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
Map<String, Object> itemData = datas.get(position);
Bitmap bitmap = (Bitmap) itemData.get("img");
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = context.getLayoutInflater();
rowView = inflater.inflate(R.layout.items, null, true);
holder = new ViewHolder();
holder.tvHeader = (TextView) rowView.findViewById(R.id.tvText);
holder.ivImage = (ImageView) rowView.findViewById(R.id.ivImg);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
holder.tvHeader.setText((String) itemData.get(MyActivity.ATTRIBUTE_NAME_TEXT));
holder.ivImage.setImageBitmap(bitmap);
return rowView;
}
}
조각 코드
public class PlanetFragment extends ListFragment{
Bundle bundle;
public int itpos ;
public String link;
MyAdapter sAdapter;
ArrayList<Map<String, Object>> data1;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
data1 = new ArrayList<Map<String, Object>>();
bundle = getArguments();
itpos = bundle.getInt("position");
link = bundle.getString("link");
context = getActivity();
NewThread t = new NewThread();
t.setOnParseResult(new IOnParseResult() {
@Override
public void onDone(ArrayList<Map<String, Object>> data) {
data1 = data;
sAdapter = new MyAdapter(getActivity(), data1);
sAdapter.notifyDataSetChanged();
setListAdapter(sAdapter);
}
@Override
public void onVideoLinkGet(String str) {}
});
t.execute(link,"link");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.videolist, null);
}
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Toast.makeText(getActivity(),data1.get(position).get("img").toString(), Toast.LENGTH_SHORT).show();
}
}
내가 어떻게 두 개의 열 ListFragment를 표시 할 수 있습니까?
은 왜 2 개의 ListView를 않고 어디 (단지 수행하는 방법을 모르고 그렇게 한 listfragment 코드 – Raghunandan
입니다 (( – IP696
귀하의 요구 사항에 맞게 GridView를 사용하십시오. –