基于微调控制器的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

回到顶部