2014-03-13 31 views
1

我正在創建微調對話框來關閉電源並重啓我在keydown上顯示的對話框。問題是我不想在每個活動上創建微調。那麼,如何在應用程序中的所有活動中調用單個微調器?如何在應用程序的所有活動中顯示單個微調框?

  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); 
} 

回答

0

創建一個名爲BaseActivity的類並將其擴展到Activity。然後,您可以從BaseActivity類創建活動,併爲其添加對話框。

編輯:

public class BaseActivity extends Activity { 

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

和您的MainActivity將延長BaseActivity。

+0

如何舉例?在onkeydown事件的方法即時顯示spiiner @覆蓋 公共布爾的onkeydown(INT的keyCode,KeyEvent的事件){ – user3416078

+0

添加微調和對話框您BaseActivity。這將使您的所有活動都有對話,因爲它們擴展到了BaseActivity。 –

+0

它是延伸微調的可能crete活動?所以當我需要spinner時,我使用intent調用該活動? – user3416078

相關問題