【问题标题】:listview adding spinner in each row?listview 在每一行中添加微调器?
【发布时间】:2013-02-21 12:56:51
【问题描述】:

我在将Spinner 放入布局时遇到问题。我的实际要求是在布局顶部放置一次Spinner

我得到的这个输出:

我有相对布局

   <Spinner
       android:id="@+id/spinner1"
        android:layout_width="fill_parent"
   android:layout_height="wrap_content" 
   android:entries="@array/string_array"
       android:prompt="@string/spinner_msg"
     />
     <TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/notesTextView" 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content" 
   android:textColor="@android:color/white"
   android:minHeight="?android:attr/listPreferredItemHeight"
   android:gravity="center_vertical"
   android:textAppearance="?android:attr/textAppearanceMedium"
</TextView>`

MyActivity 类由ListActivity 扩展,这里是onCreate 方法

   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

     listView=getListView();
     listView.setOnItemClickListener(listener);
     spinner1=(Spinner)findViewById(R.id.spinner1);
     getDetailsCursor();
    String[] from = new String[] {"db_column"};
    int[] to = new int[] { R.id.notesTextView};
            curAdapter=new SimpleCursorAdapter(MyActivity.this, R.layout.mylist, null, from, to);
            setListAdapter(curAdapter);
        registerForContextMenu(listView);
    }`

【问题讨论】:

  • 你想要所有的微调器都在上面还是?如我所见,微调器在顶部?
  • 请重新表述您的要求并发布您的布局 XML。
  • 我只想要一个微调器。但它被列表视图 Evilunclebill 添加了 3 次
  • @PSK 好的,你的问题没有这么说。请按照 kiljaTM 的要求添加 xml 布局。
  • 它添加了 3 个微调器,因为它显示并且从您的评论中您说您是 listview。所以在这种情况下,您必须在您的列表视图自定义布局文件中定义微调器,这就是为什么它添加 3 个微调器和文本的 3 个值。查看您从适配器类中扩展的列表视图自定义布局。

标签: android android-layout android-listview android-spinner


【解决方案1】:

这是微调器在列表视图顶部膨胀的代码:

listView= (ListView) findViewById(R.id.list);

        LayoutInflater inflater = LayoutInflater.from(this);
        View mTop = inflater.inflate(R.layout.spin, null);
        authorityView.addHeaderView(mTop);

R.layout.spin 是只包含微调器的布局。 在 List 内,您只需要对 textView 进行膨胀。正如您在 mylist.xml 中所做的那样, 只需从中删除微调器并为微调器制作单独的 xml。

所以微调器是一次,位于布局的顶部(ListView)。

【讨论】:

  • 如果你喜欢我的回答请欣赏我的回答:)
  • 能否告诉我如何在 Spinner 上设置 onItemClickListener
  • 只写 Spinner spin = mTop.findViewById(R.id.spinnerId);
【解决方案2】:

我很难弄清楚您的实际问题是什么,一些 layout.xml 代码在这里也会有所帮助。我认为,您将微调器放置在 listitem.xml 而不是 main.xml 中,以便为您的列表视图中的每个项目复制它。请分享一些代码。 由于您在 mylist.xml 中同时声明了 TextView 和 Spinner,因此您可以在 List 的每个 Item 中获得这两个元素。 如果您只想要一个微调器,则不应使用 ListActivity,而应在 Layout 中创建一个带有 Spinner 和 ListView 的普通 Activity。然后为列表项定义另一个布局(例如,仅使用 TextView)。

【讨论】:

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