1
에서 런타임 추가 버튼의 변경 위치를 스크롤 할 때이 내 listadapter 클래스우리는리스트 뷰, 안드로이드
public class ListDemoAdapter extends BaseAdapter{
private String[] name={"aa","bb","cc","dd","ee","ff","gg","hh","ii","jj","kk"};
private Context context;
private LayoutInflater inflater;
public ListDemoAdapter(Context ctx) {
context=ctx;
inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return name.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return name[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view=convertView;
ViewHolder holder;
if(view==null)
{
holder=new ViewHolder();
view=inflater.inflate(R.layout.listitem, null);
holder.tv=(TextView)view.findViewById(R.id.tv);
holder.btn=(Button)view.findViewById(R.id.addbtn);
holder.rl=(LinearLayout)view.findViewById(R.id.runtimerl);
view.setTag(holder);
}else{
holder=(ViewHolder) view.getTag();
}
holder.tv.setText(name[position]);
holder.btn.setOnClickListener((OnClickListener) context);
return view;
}
private class ViewHolder{
private TextView tv;
private Button btn;
private LinearLayout rl;
}
}
이며, 우리가 버튼을 클릭하면 다음 버튼을 생성합니다 런타임하지만 우리는 목록보기를 스크롤 할 때 다음 변경 생성 버튼을 런타임 당신이 어댑터를 통해 스크롤 할 때, 위치를 보장하지 않습니다
public class AndroidListDemoActivity extends Activity implements OnClickListener{
private ListView list;
public static int pos=0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list=(ListView)findViewById(R.id.list);
list.setAdapter(new ListDemoAdapter(this));
}
@Override
public void onClick(View v) {
if(v.getId()==R.id.addbtn){
View view=(View) v.getParent();
LinearLayout rl=(LinearLayout)view.findViewById(R.id.runtimerl);
Button btn=new Button(this);
btn.setText(""+pos);
btn.setTag(btn+"pos");
rl.addView(btn);
pos++;
}
}
}
코드를 읽을 수 있도록 만들어주세요. – Riskhan