2017-03-08 82 views
1
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 
+0

你看了(HTTP [使用SimpleCursorAdapter有微调?]://计算器。 com/a/26515766/4391450) – AxelH

回答

3

您设置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); 
+0

我尝试设置布局代替id,但它仍然无法正常工作。 –

+0

检查编辑... – rafsanahmad007