我正在创建一个列表视图,其中每行左边有两个部分是图像视图,右边部分包含一些文本字段。但是字段应该动态加载..意味着从0到9的值将动态生成。我很困惑如何使用正确的部分。我想在java编码中创建它..而不是在xml ..我创建我的xml像这样..`
<?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:layout_marginBottom="2dp"
android:background="@android:color/white"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="2dp"
android:layout_weight=".88"
android:background="#D8D8D8"
android:clickable="true"
android:gravity="center"
android:text="image"
android:textColor="@android:color/black" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".15"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" />
</LinearLayout>
</LinearLayout>
`
我的适配器类就像这样::
public class SimpleAdapter extends ArrayAdapter<Simple> {
TextView mImage;
LinearLayout layout_VER;
LinearLayout layout_hor;
private ArrayList<Simple> dd;
Activity context = null;
Intent myIntent;
public SimpleAdapter(Activity context, int textViewResourceId, ArrayList<Simple> objects) {
super(context, textViewResourceId, objects);
this.dd = objects;
this.context = context;
}
@Override
public Simple getItem(int position) {
// TODO Auto-generated method stub
return dd.get(position);
}
@Override
public int getCount() {
return dd.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
pos = position;
if (view == null) {
LayoutInflater inflater = context.getLayoutInflater();
view = inflater.inflate(R.layout.row, null);
}
view.setTag(pos);
mImage = (ImageView) view.findViewById(R.id.image);
if (dd != null) {
Simple simple = dd.get(position);
}
layout_VER=(LinearLayout)view.findViewById(R.id.dyn_main);
layout_VER.setTag(pos);
showDEtails(view, layout_VER, 10);
return view;
}
private void showDEtails(View view, LinearLayout layout_VER2, int Obj ) {
View myView=view;
LinearLayout ver_layout=layout_VER2;
Log.i("showAppointments0000000000","vr_layout:::"+ver_layout.getTag());
LinearLayout hr_layout1 = (LinearLayout)myView.findViewById(R.id.dyn_new);
hr_layout1.setTag(ver_layout.getTag()+","+0);
LinearLayout hr_layout2 =null;
for (int i = 0; i < Obj i++) {
if (i > 4) {
if (Obj % 5 == 0) {
int mp=Obj % 5;
hr_layout2 = new LinearLayout(context);
hr_layout2.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
hr_layout2.setOrientation(LinearLayout.HORIZONTAL);
hr_layout2.setTag(ver_layout.getTag()+","+mp);
}
TextView text = new TextView(context);
text.setTextSize(12);
text.setGravity(Gravity.LEFT);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(2, 2, 2, 2);
text.setLayoutParams(layoutParams);
text.setPadding(3, 3, 3, 3);
text.setClickable(true);
hr_layout2.addView(text);
}else{
TextView text = new TextView(context);
text.setText("Value of j is : " + i);
text.setTextSize(12);
text.setGravity(Gravity.LEFT);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(2, 2, 2, 2);
text.setLayoutParams(layoutParams);
hr_layout1.addView(text);
text.setClickable(true);
text.setPadding(3, 3, 3, 3);
}
}
}
我的o / p就像这个
问题是什么。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您的右侧部分具有静态布局,并且只有字段中的文本会更改,则创建一个具有该布局的单独xml,然后使用ListView适配器的getView()中的值进行充气和填充。像这样:
public View getView(int position, View v, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = layoutInflater.inflate(mTextViewResourceId, null);
TextView text = (TextView) v.findViewById(R.id.field1);
text.setText(mItems.get(position).field1text);
return v;
}