我打電話我Main.java
從AndroidManifest.xml
在Main.java
文件的onCreate
方法創建的MainView.java
一個新實例,並送過來Context
。在MainView.java
我有一個名爲buildView
的方法,返回LinearLayout
。在LinearLayout
我正在創建一個Spinner
和一個Button
。我給了Spinner
一個.setId(1)
。在Button
我添加一個setOnClickListener
。在onClick
方法中,我使用來引用Spinner
。這是我得到一個錯誤的地方。 Eclipse要求我創建一個名爲findViewById
的方法。findViewById給了我一個問題,它設置在外面方面
我複製了我的Main onCreate
方法中的代碼,並將其移至MainView.java
,這樣我就可以決定在開始時加載哪個View。這個想法是有FooView.java
,BlahView.java
,所以當應用程序啓動時它會決定加載什麼?View.java。
這裏是MainView.java
public LinearLayout buildView(){
this.datasource = new LocationDataSource(context);
this.datasource.open();
LinearLayout llmain = new LinearLayout(context);
llmain.setOrientation(LinearLayout.VERTICAL);
llmain.setGravity(Gravity.CENTER_HORIZONTAL);
LinearLayout llcore = new LinearLayout(context);
llcore.setOrientation(LinearLayout.VERTICAL);
llcore.setLayoutParams(new LayoutParams(600,-2));
TextView tv = new TextView(context);
String tx = "Select Location";
tv.setText(tx);
tv.setPadding(0, 25, 0, 0);
llcore.addView(tv);
LinearLayout llTemp = new LinearLayout(context);
llTemp.setOrientation(LinearLayout.HORIZONTAL);
llTemp.setLayoutParams(new LayoutParams(600,-2));
llTemp.setPadding(0, 15, 0, 0);
Spinner s = new Spinner(context);
s.setId(1);
s.setLayoutParams(new LayoutParams(450,80));
final List<SpinnerObject> list = this.datasource.getLocation();
final ArrayAdapter<SpinnerObject> adapter = new ArrayAdapter<SpinnerObject>(context, android.R.layout.simple_spinner_dropdown_item, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
llTemp.addView(s);
Button b = new Button(context);
b.setText("Select");
b.setLayoutParams(new LayoutParams(150,80));
b.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
//need help here
//need help here
//need help here
//need help here
//need help here
Spinner spin = (Spinner)findViewById(1);
//String str = Integer.toString(((SpinnerObject) spin.getSelectedItem()).getId());
/* if(spin.getSelectedItemPosition() == 0){
Messages message = new Messages(context);
message.alert("ERROR", "Selecting a location is required!");
}else{
//loadVehicle();
}*/
}
});
llTemp.addView(b);
llcore.addView(llTemp);
llmain.addView(llcore);
return llmain;
}
試用爲' Spinner spin = s.getId();'在你的點擊監聽器中。 – GrIsHu
你不需要findviewbyid。在onclick你可以只是getid的微調和處理。 – droid
你爲什麼這樣做?爲什麼不根據你的'SharedPref'值創建'layout'文件並轉到相應的'Activity'?這樣做會更簡單。 – codeMagic