如何在Android Spinner中设置默认文本

时间:2016-08-22 13:27:39

标签: android arraylist android-spinner baseadapter pojo

我在微调器中显示值。我想显示默认文本,如"选择表"。这是我的代码

    JSONArray tablearray = tablenamejson.getJSONArray("data");
    for (int i = 0; i < tablearray.length(); i++) {
    JSONObject jsonObject = tablearray.getJSONObject(i);
    String table_id = jsonObject.getString(TAG_TABLE_ID);
    String table_name = jsonObject.getString(TAG_TABLE_NAME);
    ArrayList<TableData> tableDatas = new ArrayList<TableData>();
    TableData tables = new TableData();
    tables.setTblId(table_id);
    tables.setTblName(table_name);
    tableDatas.add(tables);
    }

    adapter = new TableAdapter(tableDatas, getActivity());
    spinner.setAdapter(adapter);

2 个答案:

答案 0 :(得分:3)

首先你应该声明

ArrayList<TableData> tableDatas = new ArrayList<TableData>();
当您添加forloop

中的所有条目时,在list之外

首先在list内添加默认值,然后写forloop以添加json array中的所有值,然后使用spinner.setSelection(0);方法在微调器中显示defult值将其添加到array

的第一个位置

以下是代码

ArrayList<TableData> tableDatas = new ArrayList<TableData>();

//for default value
TableData tables = new TableData();
tables.setTblId(0);
tables.setTblName("Select");
tableDatas.add(tables);

JSONArray tablearray = tablenamejson.getJSONArray("data");
for (int i = 0; i < tablearray.length(); i++) {
  JSONObject jsonObject = tablearray.getJSONObject(i);
  String table_id = jsonObject.getString(TAG_TABLE_ID);
  String table_name = jsonObject.getString(TAG_TABLE_NAME);
  TableData tables = new TableData();
  tables.setTblId(table_id);
  tables.setTblName(table_name);
  tableDatas.add(tables);
}

adapter = new TableAdapter(tableDatas, getActivity());
spinner.setAdapter(adapter);
spinner.setSelection(0);

答案 1 :(得分:1)

您可以使用微调器.setSelection()来实现此目的。

String myString = "Select Table"; //default value for spinner 

ArrayAdapter myAdap = (ArrayAdapter) mySpinner.getAdapter(); 

int spinpos= myAdap.getPosition(myString);

//set the default according to value
spinner.setSelection(spinpos);