android 之GridView
阿新 • • 發佈:2019-01-01
public class HomeActivity extends Activity { private GridView gd; private Myadapt adapt; private SharedPreferences sp; //標題 private static String[] names={"手機防盜","通訊衛士","軟體管理","程序管理","流量統計","手機防毒","快取清理","高階工具","設定中心"}; //圖片 private static int[] images={R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background,}; private Button cancelBtn; private Button okBtn; private EditText enterPwdagin; private EditText enterpwd; private AlertDialog dialog; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); //先儲存一個密碼,測試用 sp=getSharedPreferences("connfig",MODE_PRIVATE); gd = findViewById(R.id.list_home); adapt=new Myadapt(); gd.setAdapter(adapt); //點選listview的每一個item gd.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { switch (position){ case 8://進入設定中心 Intent intent=new Intent(HomeActivity.this,SettingActivity.class); startActivity(intent); break; case 0://進入手機防盜 gotophonesafe(); break; case 1://通訊衛士,黑名單 gototongxunweishi(); break; case 2://軟體管理 enterRuanjianManager(); break; case 3: break; case 4: break; case 5: break; case 6: break; case 7://進入高階工具 enterGreateTool(); break; } } }); } //軟體管理 private void enterRuanjianManager() { Intent intent=new Intent(this,RuanjianManagerActivity.class); startActivity(intent); } //進入通訊衛士 private void gototongxunweishi() { Intent intent=new Intent(this,CallSmsSafeActivty.class); startActivity(intent); } //進入高階工具 private void enterGreateTool() { Intent intent=new Intent(this,GreatToolsActivity.class); startActivity(intent); } //沒有設定密碼就去設定密碼,設定過密碼就輸入密碼進入 protected void gotophonesafe(){ //設定過密碼,彈出輸入密碼對話方塊 if(isSetupPwd()){ enterpasswordDialog(); }else{ //沒有設定密碼,彈出設定密碼對話方塊 showsetpasswordDialog(); } } //*********************設定密碼對話方塊 private void showsetpasswordDialog(){ AlertDialog.Builder builder=new AlertDialog.Builder(HomeActivity.this); //自定義一個佈局檔案 View view=View.inflate(HomeActivity.this,R.layout.dialog_setpwd,null); enterpwd = view.findViewById(R.id.et_dialog_setpwd); enterPwdagin = view.findViewById(R.id.et_dialog_setpwdagin); okBtn = view.findViewById(R.id.btn_setpwd_sureBtn); cancelBtn = view.findViewById(R.id.btn_setpwd_cancelBtn); //取消 cancelBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); } }); //確定 okBtn.setOnClickListener(new View.OnClickListener() { @SuppressLint("WrongConstant") @Override public void onClick(View view) { //取出密碼 String enterpw= enterpwd.getText().toString().trim(); String enterpwagin= enterPwdagin.getText().toString().trim(); if(TextUtils.isEmpty(enterpw)||TextUtils.isEmpty(enterpwagin)){ Toast.makeText(getApplicationContext(),"密碼不能為空", 0).show(); return; } if(enterpw.equals(enterpwagin)){ //儲存密碼,取消對話方塊,進入手機安全頁 SharedPreferences.Editor editor=sp.edit(); editor.putString("password",enterpw); editor.commit(); dialog.dismiss(); //進入手機防盜頁面 enterPhonesafe(); }else { Toast.makeText(getApplicationContext(),"密碼不一至", 0).show(); return; } } }); builder.setView(view); builder.setCancelable(false);//設定點返回按鈕和dialog外不起作用,一般做強制升級的時候才用; dialog = builder.show(); } //進入手機防盜頁面 private void enterPhonesafe() { Intent intent=new Intent(this,PhonesafeActivity.class); startActivity(intent); } //*********************輸入密碼對話方塊 private void enterpasswordDialog(){ AlertDialog.Builder builder=new AlertDialog.Builder(HomeActivity.this); //自定義一個佈局檔案 View view=View.inflate(HomeActivity.this,R.layout.dialog_enterpwd,null); enterpwd = view.findViewById(R.id.et_dialog_setpwd); okBtn = view.findViewById(R.id.btn_setpwd_sureBtn); cancelBtn = view.findViewById(R.id.btn_setpwd_cancelBtn); //取消 cancelBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); } }); //確定 okBtn.setOnClickListener(new View.OnClickListener() { @SuppressLint("WrongConstant") @Override public void onClick(View view) { //取出密碼 String enterpw= enterpwd.getText().toString().trim(); String savepwd=sp.getString("password",""); if(TextUtils.isEmpty(enterpw)){ Toast.makeText(getApplicationContext(),"密碼不能為空", 0).show(); return; } if(enterpw.equals(savepwd)){ dialog.dismiss(); //進入手機防盜頁面 enterPhonesafe(); }else { Toast.makeText(getApplicationContext(),"密碼錯誤", 0).show(); enterpwd.setText(""); return; } } }); builder.setView(view); builder.setCancelable(false);//設定點返回按鈕和dialog外不起作用,一般做強制升級的時候才用; dialog = builder.show(); } //判斷是否設定過密碼 private boolean isSetupPwd(){ String password=sp.getString("password",""); return !TextUtils.isEmpty(password); } //定義介面卡 private class Myadapt extends BaseAdapter { //多少個 @Override public int getCount() { return names.length; } @Override public Object getItem(int position) { return null; } //點選的時候獲取某一條的物件 @Override public long getItemId(int position) { return 0; } //每一個的view @Override public View getView(int position, View convertView, ViewGroup parent) { View v=View.inflate(getApplicationContext(),R.layout.list_item_home,null); //設定圖片 ImageView imagev=v.findViewById(R.id.list_Item_home_imagev); imagev.setImageResource(images[position]); //設定圖片下的標題 TextView tv=v.findViewById(R.id.list_item_home_tv); tv.setText(names[position]); return v; } } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv_nav" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="22sp" android:text="功能列表" android:gravity="center" android:background="#8866ff00"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:text="手機衛士,。。。。。。。。。。。。。。。。。。。。手機衛士0000.。。。。。。。。。。。。。。。。。。。。。" android:singleLine="true" /> <GridView android:layout_marginTop="15dp" android:verticalSpacing="10dp" android:id="@+id/list_home" android:numColumns="3" android:layout_width="match_parent" android:layout_height="match_parent"> </GridView> </LinearLayout>