首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SimpleAdapter获取数据

从SimpleAdapter获取数据
EN

Stack Overflow用户
提问于 2012-09-06 13:14:18
回答 1查看 1.3K关注 0票数 0

我试图从SimpleAdapter获取数据,但我不知道它的语法。示例代码:

month_selector.xml

代码语言:javascript
复制
<LinearLayout android:orientation="vertical">

    <TextView
        android:id="@+id/text"
        android:text="Month of birth"
        />

    <Spinner 
        android:id="@+id/spin_birthmonth"
        android:entries="@array/birthmonth"
        />

</LinearLayout>

活动页面

代码语言:javascript
复制
public class SomeActivity extends Activity {

    SimpleAdapter adapter;
    ListView lv;
    protected List<HashMap<String, String>> fillMaps;
    protected String[] from;
    protected int[] to;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        lv = (ListView) findViewById(R.id.room_list_view);
        fillMaps = new ArrayList<HashMap<String, String>>();
        from = new String[] {"title", "spinner"};
        to = new int[] {R.id.text, R.id.spin_birthmonth};
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("title", "Your month of birth");
        fillMaps.add(map);      

        adapter = new rSimpleAdapter(this, fillMaps, R.layout.month_selector, from, to);
        lv.setAdapter(adapter);

    }    
}

我删掉了一些东西,让它看起来很清晰,如果我遗漏了什么,请告诉我。我想要做的是……

代码语言:javascript
复制
Spinner month = adapter.getSpinner(R.id.spin_month);

但是我不知道从适配器内部获取微调器的语法是什么。如果可以解决问题的话,我可以让它成为一个自定义适配器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-06 13:55:08

因为这是一个ListView,所以每个ListItem上都有一个微调器。因此,在获得行视图后,您将不得不获得微调器。我认为下面的代码应该可以工作。但我还没试过

代码语言:javascript
复制
int first = lv.getFirstVisiblePosition();
View item = lv.getChildAt(first + rowid); //rowid is the row on which the spinner you want.    
Spinner month = (Spinner)item.findViewbyId(R.id.spin_month); 

编辑:从post上看,这似乎是可行的

代码语言:javascript
复制
int firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount(); // 
int wantedChild = rowid - firstPosition;
if (wantedChild < 0 || wantedChild >= listView.getChildCount()) {
  return;
}
View item = lv.getChildAt(wantedChild);
Spinner month = (Spinner)item.findViewbyId(R.id.spin_month); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12293340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档