如何为Spinner设置适配器

5

如果我有包含要显示的信息的 ArrayList<HashMap<String, String>> coursesList,该如何将适配器设置为Spinner?

我应该使用哪种正确类型的适配器呢?

3个回答

5

ArrayAdapter应该可以使用。尝试使用string[]。

Spinner s = null;
final String[] choices = {"1","2"};
ArrayAdapter<String> a =new ArrayAdapter<String>(ObservationSubmit.this,android.R.layout.simple_spinner_item, choices);
a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(a); 

我该如何将它与我的示例一起使用,因为它们不同。 - user1698448
我认为不可能使用哈希表的列表。 但是这里有一个解决方案:https://dev59.com/dG035IYBdhLWcg3wbPfc 或者,您可以获取Spinner上选择的项目的索引,然后在列表中查找实际值。 - Stephane Mathis

1
 String[] arraySpinner = new String[] {
            "1", "2", "3", "4", "5", "6", "7"
        };  
  Spinner s = (Spinner) findViewById(R.id.Spinner01);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, arraySpinner);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s.setAdapter(adapter);

0
import android.content.Context;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.agreeta.firebasedatabasedemo.R;

import java.util.ArrayList;
import java.util.HashMap;

public class TestAdapter extends ArrayAdapter {

    private Context mContext;
    private ArrayList<HashMap<String, String>> hashMapArrayList = new ArrayList<>();

    public TestAdapter(@NonNull Context context, ArrayList<HashMap<String, String>> list) {
        super(context, 0 , list);
        mContext = context;
        hashMapArrayList = list;
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        View listItem = convertView;
        if(listItem == null)
            listItem = LayoutInflater.from(mContext).inflate(R.layout.like_row,parent,false);

        TextView release = (TextView) listItem.findViewById(R.id.tv_title);
        release.setText(hashMapArrayList.get(position).get("key"));



        return listItem;
    }
}

可以尝试使用这个例子。在这里,“key”是您的HashMap键,通过它您可以将值设置为Spinner的行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接