基于微调控制器的MainActivity上的启用按钮OnItemSelectedListener
我对android开发很陌生,这基本上是我的第一个应用程序。基于微调控制器的MainActivity上的启用按钮OnItemSelectedListener
我跟着developer.android.com和其他互联网上的指南与spinners一起工作。
在我的主要活动中,我有一个微调器和一个按钮,我想要做的是启用(setClickable)基于微调选择项目的按钮。
public class MainMenu extends Activity { private Spinner spinner1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
//Add items to spinner 1 dynamically
addItemsOnSpinner1();
addListenertoSpinner();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_menu, menu);
return true;
}
public void addItemsOnSpinner1(){
spinner1 = (Spinner) findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
list.add("Test 1");
list.add("Test 2");
list.add("Add new");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinner1.setAdapter(dataAdapter);
}
public void addListenertoSpinner(){
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}
}
我已经成功地创建了一个OnItemSelectedListener类从中我可以显示微调所选项目的文本:
public class CustomOnItemSelectedListener extends Activity implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
// TODO Auto-generated method stub
if(parent.getItemAtPosition(pos).toString()== "Add new"){
Toast.makeText(parent.getContext(),
"OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),
Toast.LENGTH_SHORT).show();
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
我的问题是:
我如何可以设置Button.setClickable? 我试图做这样的事情:
if(parent.getItemAtPosition(pos).toString()== "Add new"){ Button b1 = (Button)findViewById(R.id.button1);
b1.setClickable(true);
}
但应用程序崩溃...提前
干杯!
回答:
您不应该仅针对侦听器进行活动扩展。试试这个
public void addListenertoSpinner(){ spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if(parent.getItemAtPosition(pos).toString()== "Add new"){
Button b1 = (Button)findViewById(R.id.button1);
b1.setClickable(true);
}
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
这将创建一个匿名类(当前活动的概念范围内),可以安全地使用findViewById()
。
以上是 基于微调控制器的MainActivity上的启用按钮OnItemSelectedListener 的全部内容, 来源链接: utcz.com/qa/261352.html