透過intent.setClassName("欲呼叫之AP的封包路徑", "欲呼叫之AP的類別路徑");
但必須先知道預呼叫的AP, 其封包名稱, 及要開啟的class/Activity, 若是輸入錯了預呼叫AP的路徑資訊將會產生Exception, 在此先做例外處理, 若Device中未裝有setClassName設定的AP, 就傳出"尚未安裝相關apk"的Toast提示User.
本例以ListView來陳列預呼叫的AP選項, 並自撰Adapter設計ListView的欄位Items.
CallAPK.java
package com.tsots.CallAPK; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; public class CallAPK extends Activity { Context context = CallAPK.this; ImageTextAdapter it_adapter; ListView lv_apklist; String[] str_array_apklist; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lv_apklist = (ListView) findViewById (R.id.listview1); str_array_apklist = getResources().getStringArray(R.array.apk_list); it_adapter = new ImageTextAdapter(this, str_array_apklist); lv_apklist.setAdapter(it_adapter); lv_apklist.setOnItemClickListener(new ListView.OnItemClickListener() { public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { Intent intent = new Intent(); try { switch(arg2) { case 0: intent.setClassName("com.tsots.ListView_malloc", "com.tsots.ListView_malloc.ListView_malloc"); break; case 1: intent.setClassName("com.tsots.Spinner_getValue", "com.tsots.Spinner_getValue.Spinner_getValue"); break; case 2: intent.setClassName("com.tsots.ListView_malloc_SQLite", "com.tsots.ListView_malloc_SQLite.ListView_malloc_SQLite"); break; case 3: intent.setClassName("com.tsots.GridView", "com.tsots.GridView.GridViewActivity"); break; case 4: intent.setClassName("com.tsots.GridView_Adapter_Color", "com.tsots.GridView_Adapter_Color.GridViewActivity"); break; case 5: intent.setClassName("com.tsots.GridView_Adapter_Pic", "com.tsots.GridView_Adapter_Pic.GridViewActivity"); break; case 6: intent.setClassName("com.tsots.GridView_ToastWithPhoto", "com.tsots.GridView_ToastWithPhoto.PhotoActivity"); break; case 7: intent.setClassName("com.tsots.GridView_AlertDialogWithPhoto", "com.tsots.GridView_AlertDialogWithPhoto.PhotoActivity"); break; case 8: intent.setClassName("com.tsots.GridView_HashMap", "com.tsots.GridView_HashMap.GridViewActivity"); break; case 9: intent.setClassName("com.tsots.ContactPhotoActivity", "com.tsots.ContactPhotoActivity.ContactPhotoActivity"); break; case 10: intent.setClassName("com.tsots.GridView_Contact_ChangePhoto", "com.tsots.GridView_Contact_ChangePhoto.ContactPhotoActivity"); break; case 11: intent.setClassName("com.tsots.ListView_Adapter", "com.tsots.ListView_Adapter.ListViewActivity"); break; case 12: intent.setClassName("com.tsots.Animation", "com.tsots.Animation.Main_Activity"); break; case 13: intent.setClassName("com.tsots.Gallery_ImageView", "com.tsots.Gallery_ImageView.Gallery_ImageView"); break; case 14: intent.setClassName("com.tsots.Typeface", "com.tsots.Typeface.DefaultTypeface"); break; case 15: intent.setClassName("com.tsots.Default_Progress", "com.tsots.Default_Progress.DefaultProgress"); break; case 16: intent.setClassName("com.tsots.WebView_loadUrl", "com.tsots.WebView_loadUrl.WebView_loadUrl"); break; case 17: intent.setClassName("com.tsots.CancelToast", "com.tsots.CancelToast.CancelToast"); break; } startActivity(intent); } catch(Exception e) { Toast.makeText(context, "尚未安裝相關apk", Toast.LENGTH_SHORT).show(); } } }); } }
ImageTextAdapter.java
package com.tsots.CallAPK; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class ImageTextAdapter extends BaseAdapter { private Context _con; private String[] _items; private int[] _icons = { R.drawable.pic_apk1, R.drawable.pic_apk2, R.drawable.pic_apk3, R.drawable.pic_apk4, R.drawable.pic_apk5, R.drawable.pic_apk6, R.drawable.pic_apk7, R.drawable.pic_apk8, R.drawable.pic_apk9, R.drawable.pic_apk10, R.drawable.pic_apk11, R.drawable.pic_apk12, R.drawable.pic_apk13, R.drawable.pic_apk14, R.drawable.pic_apk15, R.drawable.pic_apk16, R.drawable.pic_apk17, R.drawable.pic_apk18 }; public ImageTextAdapter(Context con,String[] items) { _con=con; _items=items; } public int getCount() { return _items.length; } public Object getItem(int arg0) { return _items[arg0]; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater factory = LayoutInflater.from(_con); View v = (View) factory.inflate(R.layout.column, null); TextView tv = (TextView) v.findViewById(R.id.column_tv); ImageView iv = (ImageView) v.findViewById(R.id.column_iv); iv.setImageResource(_icons[position]); tv.setText(_items[position]); return v; } }
沒有留言:
張貼留言