Java 无法在我的活动中显示微调器
我的儿童活动中有一个旋转器。这意味着我的活动是活动组的子活动 当我点击微调器时,它崩溃了。它在我单击某个选项之前崩溃(它甚至没有显示选项),请参见此处:Java 无法在我的活动中显示微调器,java,android,spinner,Java,Android,Spinner,我的儿童活动中有一个旋转器。这意味着我的活动是活动组的子活动 当我点击微调器时,它崩溃了。它在我单击某个选项之前崩溃(它甚至没有显示选项),请参见此处: public class PriceCalculator extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); se
public class PriceCalculator extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calculator);
Spinner metalSpinner=(Spinner)findViewById(R.id.metalSpinner);
ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals));
metalSpinner.setAdapter(metalDataAdapter);
metalSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
TextView priceTextView=(TextView)findViewById(R.id.priceTextView);
priceTextView.setText(""+parent.getItemAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {}
});
}
}
您的活动正在进行吗?
但我的活动正在进行。发生这种情况时,活动是儿童吗?尝试替换
setContentView(R.layout.calculator);
借
尝试将适配器的
上下文更改为当前活动上下文。这句话:
ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals));
ArrayAdapter metalDataAdapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_项,getResources().getStringArray(R.array.Metals));
应改为:
ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals));
ArrayAdapter metalDataAdapter=new ArrayAdapter(这是android.R.layout.simple_spinner_项,getResources().getStringArray(R.array.Metals));
好的,最好在创建所有UI组件时使用当前活动上下文如果问题已解决,请写一个答案并接受它,以便将此问题从未解决问题列表中删除。@mahe madhi您使用的是TabActivity还是ActivityGroup????
ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals));
ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals));