【问题标题】:Android: Add two TextViews to Actionbar SpinnerAndroid:向 Actionbar Spinner 添加两个 TextView
【发布时间】:2014-02-25 19:53:40
【问题描述】:

是否可以在 Actionbar Spinner 中添加两个文本视图或字符串?

类似于 Android GMAIL 应用的操作方式。

【问题讨论】:

    标签: android textview android-actionbar spinner


    【解决方案1】:

    您可以使用自定义的 ArrayAdapter:

    public class spinnerAdapter extends ArrayAdapter {
            private LayoutInflater inflater;
            public spinnerAdapter(Context context, int textViewResourceId) {
                super(context, textViewResourceId);
                inflater = LayoutInflater.from(context);
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                ViewHolder holder;
    
                if(convertView == null){
                    holder = new ViewHolder();
                    convertView = inflater.inflate(R.layout.spinner_text_layout, null);
                    holder.text1 = (TextView)convertView.findViewById(R.id.spinnerText1);
                    holder.text2 = (TextView)convertView.findViewById(R.id.spinnerText2);
                    convertView.setTag(R.layout.spinner_text_layout, holder);
                } else{
                    holder = (ViewHolder)convertView.getTag(R.layout.spinner_text_layout);
                }
    
                holder.text1.setText("Position: " );
                holder.text2.setText(position);
    
                return convertView;
                }
    
            public View getDropDownView(int position, View convertView, ViewGroup parent) {
                ViewHolder2 holder;
    
                if(convertView == null){
                    holder = new ViewHolder2();
                    convertView = inflater.inflate(R.layout.spinner_text_layout, null);
                    holder.text1 = (TextView)convertView.findViewById(R.id.spinnerText1);
                    holder.text2 = (TextView)convertView.findViewById(R.id.spinnerText2);
                    convertView.setTag(R.layout.spinner_text_layout, holder);
                } else{
                    holder = (ViewHolder2)convertView.getTag(R.layout.spinner_text_layout);
                }
    
                holder.text1.setText("Position: " );
                holder.text2.setText(position);
    
                return convertView;
                }
    
            static class ViewHolder{
                TextView text1;
                TextView text2;
            }
    
            static class ViewHolder2{
                TextView text1;
                TextView text2;
            }
    
        }
    

    spinner_text_layout.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/spinnerText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="16dp"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    
    <TextView
        android:id="@+id/spinnerText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView1"
        android:layout_alignParentRight="true"
        android:layout_marginRight="23dp"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    

    【讨论】:

    • user1888162提供的解决方案是正确的。您需要创建自己的自定义适配器并为其提供包含两个文本视图的自定义行布局。如果您需要进一步,这可能会有所帮助dandar3.blogspot.in/2013/03/…
    【解决方案2】:

    ActionBar.setListNavigationCallbacks(...)

    这只是一个SpinnerAdapter。如果您熟悉适配器,则可以创建自己的类扩展 BaseAdapter 并具有自定义布局。如果您对适配器不熟悉,建议您观看The World of ListView

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      相关资源
      最近更新 更多