【问题标题】:Spinner inside dynamic listview动态列表视图中的微调器
【发布时间】:2012-04-22 14:36:06
【问题描述】:

我正在尝试使用自定义行创建一个列表视图,每一行都包含一个微调器。我正在用这样的数据填充该行:

ArrayList<HashMap> list = new ArrayList<HashMap>();
HashMap row = new HashMap();

row.put("Land_Links", c.getString(1));
row.put("Land_Rechts", c.getString(2));
row.put("Datum", c.getString(11));
row.put("Tijd", c.getString(10));

list.add(row);

在我将它添加到 simpleAdapter 和 listview.setAdapter 之后。 这一切都很完美。 我不知道如何为微调器填充和设置 onclicklistener。

你能告诉我应该如何解决这个问题吗?

编辑:

我创建的每一行都创建了 2 个新微调器,我想填充并设置两个新微调器的 onclick 侦听器。 我创建了一个数组,其中包含需要在微调器中填充的值。(R.array.score)

当我尝试通过将微调器添加到上面的示例中来填充微调器时,我得到异常微调器不是可以由这个 simpleAdapter 绑定的视图。

我的目标:要获得一个填充文本视图的循环,填充微调器并为微调器设置onclicklisteners。

【问题讨论】:

  • 您需要什么? onClickListener 如何工作或其他?给出具体细节..

标签: android listview spinner onclicklistener


【解决方案1】:

您应该扩展一个适配器(BaseAdapter,SimpleAdapter ...),并在 getView(名称并不总是这样,但通常适用于所有类型的适配器,如 baseAdapter)方法中,您可以将 onClickListener 设置为微调器。

在这里您可以找到有关 ArrayAdapter 的信息 http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

这里是 BaseAdapter 的代码

公共类 FrontPageAdapter 扩展 BaseAdapter {

private ArrayList<Item> rssItems;
private static LayoutInflater inflater = null;

public FrontPageAdapter(Activity activity, ArrayList<Item> items){
    super();
    rssItems = items;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public int getCount(){
    return rssItems.size();
}

public Object getItem(int position){
    return rssItems.get(position);
}

public long getItemId(int position){
    return getItem(position).hashCode();
}

public View getView(int position, View convertView, ViewGroup parent){
    if (convertView == null)
        convertView =  inflater.inflate(R.layout.frontpage_item, null);

    // Get the item
    Item ls = (Item)getItem(position);
    if (ls == null)
        return convertView;

    //Set the title
    String title = ls.getTitle();
    if (title == null || title.equals("")){
        ((TextView)convertView.findViewById(R.id.FrontPageItemHeader)).setText("");
    }
    else{
        ((TextView)convertView.findViewById(R.id.FrontPageItemHeader)).setText(title);  
    }



    //Obtenemos el contenido. En caso de ser null obtenemos la descripcion
    //  String description = ls.getContent();
    String subtitle= ls.getDescription();
    if (subtitle == null || subtitle.length() == 0){
        ((TextView)convertView.findViewById(R.id.FrontPageItemText)).setVisibility(View.GONE);
    }
    else{
        ((TextView)convertView.findViewById(R.id.FrontPageItemText)).setText(Html.fromHtml(subtitle));
    }

     // Other views, for example your spinner




    return convertView;
}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多