日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...

發(fā)布時間:2025/4/5 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我的活動包含一個按鈕和一個ListView. ListView包含Spinner和EditText視圖.每次我想在Activity的ListView中插入一個新的行條目時,我都會使用該按鈕.

我遵循了之前的stackoverflow線程的指示,如下所示:Android Listview with spinner and a checkbox關(guān)于如何使用像Spinners這樣的可聚焦對象填充ListViews.

我的問題是每次我在ListView中動態(tài)添加一個新的ListView條目時,前一個ListView條目的Spinner值都會丟失(實際上Spinner返回其默認設(shè)置).為簡單起見,我的Spinners填充了以下數(shù)據(jù):

String spinner_data[] = {"apple", "banana", "pear", "watermelon", "strawberry"};

例如,如果我選擇我的第一個ListView的Spinner值為“pear”,然后我用Button添加一個新的ListView條目,則“pear”條目將從第一個ListView Spinner中消失,并顯示默認值“apple”.

任何幫助表示贊賞!

這是我的活動:

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

lv = (ListView) findViewById(R.id.lv);

da = new DataAdapter(this, new ArrayList());

lv.setAdapter(da);

btn_new = (Button)findViewById(R.id.btn_new);

btn_new.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

da.add(new RawData(this));

da.notifyDataSetChanged();

}

});

}

RawData類是這樣的:

public class RawData {

private int selected_position;

private ArrayAdapter adapter;

public RawData(Context context)

{

adapter = ArrayAdapter.createFromResource(context, R.array.data, android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

}

public ArrayAdapter getAdapter()

{

return adapter;

}

/**

* get adapter's item text from selected position

* @return

*/

public String getText()

{

return (String) adapter.getItem(selected_position);

}

public int getSelected()

{

return selected_position;

}

public void setSelected(int selected)

{

this.selected_position = selected;

}

}

DataArrayAdapter如下:

public class DataArrayAdapter extends ArrayAdapter {

private Activity myContext;

//private final List list;

public DataArrayAdapter(Activity context, List list)

{

super(context, R.layout.row_view, list);

myContext = context;

}

static class ViewHolder

{

protected RawData data;

protected Spinner spn;

protected EditText edt;

}

@Override

public View getView(int position, View convertView, ViewGroup parent)

{

View view = null;

if ( convertView == null )

{

LayoutInflater inflator = myContext.getLayoutInflater();

view = inflator.inflate(R.layout.row_view, null);

final ViewHolder viewHolder = new ViewHolder();

viewHolder.edt = (EditText)view.findViewById(R.id.edt);

viewHolder.data = new RawData(myContext);

viewHolder.spn = (Spinner)view.findViewById(R.id.spn);

viewHolder.spn.setAdapter(viewHolder.data.getAdapter());

viewHolder.spn.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView> arg0, View arg1,

int arg2_position, long arg3) {

// TODO Auto-generated method stub

viewHolder.data.setSelected(arg2_position);

}

@Override

public void onNothingSelected(AdapterView> arg0) {

// TODO Auto-generated method stub

}

});

// Update the TextView to reflect what's in the Spinner

view.setTag(viewHolder);

}

else

{

view = convertView;

}

// This is what gets called every time the ListView refreshes

ViewHolder holder = (ViewHolder) view.getTag();

holder.spn.setSelection(getItem(position).getSelected());

return view;

}

}

總結(jié)

以上是生活随笔為你收集整理的Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。