【问题标题】:get selected item from single selection mode listview - android从单选模式列表视图中获取所选项目 - android
【发布时间】:2016-10-27 01:37:23
【问题描述】:

请告诉我,我怎样才能从列表视图中被选中。? 我的列表视图中的单个项目行包含一个文本,后跟一个单选按钮。

代码: XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:choiceMode="singleChoice"
    />

</LinearLayout>

和活动:

public class MainActivity extends Activity {
    String[] countries = new String[] {
        "India",
        "Pakistan",
        "Sri Lanka",
        "China",
        "Bangladesh",
        "Nepal",
        "Afghanistan",
        "North Korea",
        "South Korea",
        "Japan"
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Getting object reference to listview of main.xml
        ListView listView = (ListView) findViewById(R.id.listview);

        // Instantiating array adapter to populate the listView
        // The layout android.R.layout.simple_list_item_single_choice creates radio button for each listview item
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,countries);

        listView.setAdapter(adapter);

    }
}

代码运行良好..
但我的问题是
1) 如何设置默认选择?
2)获得选定的项目?

【问题讨论】:

标签: android listview


【解决方案1】:

我通过这种方式得到了我想要的输出:

回答 1)如何设置默认选择:

int defaultselected=0,idnoreid=0;
listView.setItemChecked(defaultselected, true);
listView.performItemClick(listView.getSelectedView(), defaultselected, idnoreid);

回答 2) 获取所选项目:

    @Override
    public void onItemClick(AdapterView<?> adapterView, View v, int i, long l)   
    {  
       newLabel = ((TextView)v).getText().toString();  
    }

【讨论】:

    【解决方案2】:

    1) 您可以使用setSelection 设置默认值。例如在您的代码中,在您设置适配器之后放置它。

    listView.setAdapter(adapter);
    listview.setSelection(0); //default is India
    

    2) 您可以使用getSelectedItem() 从列表视图中获取您选择的国家/地区。例如,在您的代码中,如果您有保存方法,那么

    private void save() {
        String selectedCountry = (String) listview.getSelectedItem();
        //TODO
    }
    

    【讨论】:

    • 在文档中,它说“设置当前选定的项目。如果在触摸模式下,该项目将不会被选中,但仍会适当定位。如果指定的选择位置小于0,然后将选择位置 0 处的项目。”,因此您无法在屏幕上看到该项目已被选中,但在您的保存方法中,您将获得默认项目。
    猜你喜欢
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2018-07-14
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多