[英]How to show single spinner in all activities in application?
I am creating spinner dialog to power off and restart which I show on keydown. 我正在创建微调器对话框以关闭电源并重新启动,该操作在按键按下时显示。 The problem is I don't want to create spinner on each activity. 问题是我不想在每个活动上创建微调器。 So how can I call single spinner on all activities in application??? 那么,如何在应用程序中的所有活动上调用单个微调框?
public class MainActivity extends Activity {
Spinner spinner;
String[] strings = {"Power Options","Power off","Restart"};
String[] subs = {"","Shut phone down","Close all apps and restart phone" };
int arr_images[] = {R.drawable.ic_launcher, R.drawable.images1,
R.drawable.images2};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner)findViewById(R.id.spinner1);
spinner.setAdapter(new MyAdapter(this, R.layout.row, strings));
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> adapterView,
View view, int i, long l) {
// TODO Auto-generated method stub
if (i == 1)
{
Toast.makeText(MainActivity.this,"PowerOff
Perform",Toast.LENGTH_SHORT).show();
}
if (i == 2)
{
Toast.makeText(MainActivity.this,"Reboot Perform",Toast.LENGTH_SHORT).show();
}
}
// If no option selected
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
public class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context context, int textViewResourceId, String[] objects)
{
super(context, textViewResourceId, objects);
}
@Override
public View getDropDownView(int position, View convertView,ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=getLayoutInflater();
View row=inflater.inflate(R.layout.row, parent, false);
TextView label=(TextView)row.findViewById(R.id.company);
label.setText(strings[position]);
TextView sub=(TextView)row.findViewById(R.id.sub);
sub.setText(subs[position]);
ImageView icon=(ImageView)row.findViewById(R.id.image);
icon.setImageResource(arr_images[position]);
return row;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(KeyEvent.KEYCODE_PAGE_UP == event.getKeyCode() && isRooted()){
spinner.performClick();
return true;
}
return super.onKeyDown(keyCode, event);
}
Create a class called BaseActivity and extend it to Activity. 创建一个名为BaseActivity的类,并将其扩展到Activity。 Then you can create your activities from BaseActivity class and add a dialog to it. 然后,您可以从BaseActivity类创建活动,并向其中添加一个对话框。
Edit: 编辑:
public class BaseActivity extends Activity {
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
}
and your MainActivity will extend BaseActivity. 并且您的MainActivity将扩展BaseActivity。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.