【问题标题】:Spinner values from Database Gives error来自数据库的微调器值给出错误
【发布时间】:2017-03-08 08:16:16
【问题描述】:
public class MainActivity extends AppCompatActivity {

    Cursor c;
    Button b1;
    EditText e1,e2,e3;
    Spinner s1,s2;
    SQLiteDatabase db;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Open_Helper helper=new Open_Helper(getApplicationContext());
        db=helper.getWritableDatabase();
        c=db.rawQuery("select mid as _id,* from menu",null);
        s1= (Spinner) findViewById(R.id.spinner3);
        SimpleCursorAdapter sr=new SimpleCursorAdapter(getApplicationContext(),R.layout.activity_main,c,new String[]{"_id","mname"},new int[]{R.id.spinner3,R.id.spinner4},0);
        sr.setDropDownViewResource(R.id.spinner3);
        s1.setAdapter(sr);

    }
}

错误是

java.lang.IllegalStateException: android.widget.Spinner is not a  view 
     that can be bounds by this SimpleCursorAdapter

【问题讨论】:

标签: java android spinner simplecursoradapter


【解决方案1】:

您将Spinner id 设置为setDropDownViewResource。虽然它需要一个layout ID

sr.setDropDownViewResource(R.id.spinner3);

改用这个:

sr.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

完整代码:

 String[] columns = new String[] { "_id","mname"};
int[] to = new int[] { R.id.spinner3,R.id.spinner4};

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c , columns, to);
mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner spinner = (Spinner) findViewById(R.id.spinner_id);
spinner.setAdapter(mAdapter);

【讨论】:

  • 我尝试设置 layout 来代替 id 但还是不行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多