当前位置: 首页 > 知识库问答 >
问题:

在Spinner Android中可滚动的选定项目文本

锺英卫
2023-03-14
private Spinner spinProcess;

spinProcess = (Spinner)findViewById(R.id.spinSearch);
<Spinner
                android:id="@+id/spinSearch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0.5"
                android:background="@drawable/add_project_drop_down_enabled"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:paddingLeft="10dp"
                android:paddingRight="35dp"
                android:spinnerMode="dropdown"
                android:scrollHorizontally="true"
                android:textColor="@color/spinnerText" />
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(HelpActivity.this,android.R.layout.simple_spinner_dropdown_item);
            for(int i=0;i<SpinnerLIst.size();i++)
            {
                arrayAdapter.add(SpinnerLIst.get(i));
            }

            spinProcess.setAdapter(arrayAdapter);

我试着修改Android.r.layout.simple_spinner_dropdown_item.但是没有一个对我有效??关于这一点已经问了很多问题..但这种解决方案对我不起作用...

共有1个答案

俞博涛
2023-03-14

我用旋转器的自定义适配器试过了

item_row.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:ellipsize="marquee"
        android:fadingEdge="horizontal"
        android:lines="1"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:text="Simple application that shows how to use marquee, with a long text"
        android:textColor="#ff4500" />

</RelativeLayout>

适配器:

public class SpinnerAdapter extends BaseAdapter {

    private Context mContext;
    private List<String> albumData;
    private static LayoutInflater inflater = null;

    public SpinnerAdapter(Context context, List<String> albumList) {
        mContext = context;
        albumData = albumList;

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

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

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public class ViewHolder {

        private TextView albumName;

    }

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

        ViewHolder holder = null;
        try {
            if (convertView == null) {
                convertView = inflater.inflate(R.layout.item_row, null);

                holder = new ViewHolder();

                holder.albumName = (TextView) convertView
                        .findViewById(R.id.textView);

                convertView.setTag(holder);
            } else {

                holder = (ViewHolder) convertView.getTag();
            }

            holder.albumName.setText(albumData.get(position));
            holder.albumName.setSelected(true);


        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return convertView;
    }
}
public class MainActivity extends Activity {

    private Spinner spin;
    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo2);
        spin = (Spinner) findViewById(R.id.spinSearch);
        mContext = this;

        List<String> item = new ArrayList<String>();

        item.add("Item 1");
        item.add("Item 1 setAnimationListener setAnimationListener setAnimationListener item 1");

        SpinnerAdapter adapter = new SpinnerAdapter(mContext, item);

        spin.setAdapter(adapter);
    }
}
 类似资料:
  • 问题内容: 我有一个RecyclerView,每个元素代表一个事件。我想让用户通过单击选择事件。选择后,事件和报告按钮将变为彩色: 进行点击之前的用户界面:点击此处。 用户界面执行单击后:单击此处。 这非常简单,并且据称有效。我为每个负责为项目着色的对象设置了一个,并在触发时触发了名为的拥有活动中的另一个事件,该事件负责更改按钮的状态。 但是,滚动浏览RecyclerView的项目时,其他不相关的

  • 我正在寻找一种滚动以在顶部显示选定项的方法。 RecycerView不支持滚动到绝对位置 如何滚动以将选定项放在视图的顶部?

  • 问题内容: 我有一个在我的控制器中定义的范围变量$ scope.first_unread_id。在我的模板中,我有: 和我的指令看起来像: 它起作用,但是,有两个问题: 有没有比查询范围。$ parent更好的方法来将“ first_unread_id”从控制器范围内移到直接范围内?这似乎有点“棘手”。我希望我可以将它作为唯一的参数传递给直接视图,而不必在任何li元素上重复。 有没有更好的方法来避

  • 我有一个问题与自动滚动在滚动视图。 在我的例子中,有两个Recyclerview。第一个循环视图,水平滚动,第二个垂直滚动。第一个循环视图仅用于拖动,第二个循环视图只用于拖放。两个循环视图都在ScrollView中,所以我在第二个循环视图中禁用了垂直滚动。我在第二个Recyclerview的项目中添加了DragListener。每个项目都有一个拖动侦听器,因此我在拖放项目时添加/替换项目。 所以我

  • 问题内容: 如何对包含可选NSdate的可选数组进行排序? 如何根据dateCompleted对数组排序? 问题答案: 您的排序功能可以结合使用可选链接和nil合并运算符: 这将对值上的项目进行排序,所有和和一起的项目都被视为“在遥远的过去”,以便在所有其他项目之前对其进行排序。 Swift 3的 更新(假设是):

  • 我必须滚动到recyclerview中的特定项目。 首先,我需要通过匹配从活动传递给适配器的字符串来获取项的位置。然后聚焦到该项目的位置。 例如,在适配器中有一个存储了EventID的TextView,我将把一个字符串从activity传递给适配器,使其与EventID匹配,然后获取该项目的位置,并将焦点/滚动设置到该特定位置。我在适配器中定义了一个方法来获取项的位置,但我不知道如何从活动中调用它