Android 如何在应用程序的所有活动中显示单个微调器?

Android 如何在应用程序的所有活动中显示单个微调器?,android,Android,我正在创建“微调器”对话框以关闭电源并重新启动,我将在“按键关闭”时显示该对话框。问题是我不想在每个活动上创建微调器。那个么我如何在应用程序中的所有活动上调用单微调器 public class MainActivity extends Activity { Spinner spinner; String[] strings = {"Power Options","Power off","Restart"}; String[] subs = {"","Shut ph

我正在创建“微调器”对话框以关闭电源并重新启动,我将在“按键关闭”时显示该对话框。问题是我不想在每个活动上创建微调器。那个么我如何在应用程序中的所有活动上调用单微调器

           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);
}
公共类MainActivity扩展活动{
纺纱机;
String[]strings={“电源选项”、“电源关闭”、“重新启动”};
字符串[]subs={“”,“关闭手机”,“关闭所有应用程序并重新启动手机”};
int arr_images[]={R.drawable.ic_启动器,R.drawable.images1,
R.drawable.images2};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
微调器=(微调器)findViewById(R.id.spinner1);
setAdapter(新的MyAdapter(this,R.layout.row,strings));
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener()
{ 
已选择公共视图(AdapterView AdapterView,
视图,int i,long l){
//TODO自动生成的方法存根
如果(i==1)
{
Toast.makeText(MainActivity.this,“关机
表演“,吐司.长度(短).show();
}
如果(i==2)
{
Toast.makeText(MainActivity.this,“重新启动执行”,Toast.LENGTH_SHORT.show();
}
}
//如果未选择任何选项
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
} 
});
}
公共类MyAdapter扩展了ArrayAdapter{
公共MyAdapter(上下文上下文,int textViewResourceId,字符串[]对象)
{
超级(上下文、textViewResourceId、对象);
}
@凌驾
公共视图getDropDownView(int位置、视图转换视图、视图组父视图){
返回getCustomView(位置、转换视图、父级);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
返回getCustomView(位置、转换视图、父级);
}
公共视图getCustomView(int位置、视图转换视图、视图组父视图){
LayoutInflater充气机=getLayoutInflater();
视图行=充气机。充气(R.layout.row,父级,false);
TextView标签=(TextView)row.findViewById(R.id.company);
label.setText(字符串[位置]);
TextView sub=(TextView)row.findViewById(R.id.sub);
sub.setText(subs[位置]);
ImageView图标=(ImageView)row.findViewById(R.id.image);
icon.setImageResource(arr_images[position]);
返回行;
}
@凌驾
公共布尔onKeyDown(int-keyCode,KeyEvent事件){
if(KeyEvent.KEYCODE_PAGE_UP==event.getKeyCode()&&isRooted()){
spinner.performClick();
返回true;
}
返回super.onKeyDown(keyCode,event);
}

创建一个名为BaseActivity的类,并将其扩展到Activity。然后您可以从BaseActivity类创建活动,并向其中添加一个对话框

编辑:


您的MainActivity将扩展BaseActivity。

如何给出示例?我在onkeydown方法@Override public boolean onkeydown(int-keyCode,KeyEvent事件)中显示spiiner{将微调器和对话框添加到BaseActivity中。这将使您的所有活动都具有对话框,因为它们扩展到BaseActivity。可能是克里特活动扩展了微调器?因此,当我需要spiner时,我使用intent调用该活动???我如何在我的主活动上调用BaseActivity spiner?这是在应用程序级别上的Ketton调用?我按活动中的电源按钮微调器将显示在哪里???
public class BaseActivity extends Activity {

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        return super.onKeyDown(keyCode, event);
    }
}