1. 程式人生 > >android 之GridView

android 之GridView

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>