专高一

intentService获取网络数据广播发送

package com.example.day016;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    private Button start;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();


        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, MyIntentService.class);
                startService(intent);
            }
        });

        My my = new My();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.bb");
        registerReceiver(my,intentFilter);

    }

    private void initView() {
        start = (Button) findViewById(R.id.start);
    }


    class My extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
            Bundle extras = intent.getExtras();
            String json = extras.getString("json");
            Log.i(TAG, "onReceive: "+json);
        }
    }
}

















package com.example.day016;

import android.app.IntentService;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;


/**
 * An {@link IntentService} subclass for handling asynchronous task requests in
 * a service on a separate handler thread.
 * <p>
 * TODO: Customize class - update intent actions and extra parameters.
 */
public class MyIntentService extends IntentService {

    private static final String TAG = "MyIntentService";
    public MyIntentService() {
        super("MyIntentService");
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        StringBuffer sb=new StringBuffer();
        HttpURLConnection connection=null;
        InputStream inputStream=null;
        try {
            URL url=new URL("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1");
            connection = (HttpURLConnection) url.openConnection();
//            connection.setReadTimeout(5*1000);
//            connection.setConnectTimeout(5*1000);

            if(connection.getResponseCode()==200){
                inputStream  = connection.getInputStream();
                byte[] b=new byte[1024];
                int len=0;
                while((len=inputStream.read(b))!=-1){
                    sb.append(new String(b,0,len));
                }
//                Log.i(TAG, "onHandleIntent: "+sb.toString());

                Intent intent1 = new Intent();
                intent1.setAction("com.bb");
                Bundle bundle = new Bundle();
                bundle.putString("json",sb.toString());
                intent1.putExtras(bundle);
                sendBroadcast(intent1);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(inputStream!=null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(connection!=null){
                connection.disconnect();
            }
        }
    }


}

Myhelp

package com.example.day009;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import androidx.annotation.Nullable;

public class Myhelp extends SQLiteOpenHelper {
    private static final String TAG = "Myhelp";

    public Myhelp(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.i(TAG, "onCreate: 创建Sql");
        db.execSQL("CREATE TABLE student(\n" +
                "id INTEGER PRIMARY KEY autoincrement,\n" +
                "nam VARCHAR,\n" +
                "age VARCHAR\n" +
                "); ");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.i(TAG, "onUpgrade: 版本更新");
    }
}


Noti通知


 Notification.Builder builder = new Notification.Builder(this);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentText("这是内容");
        builder.setContentTitle("这是标题");

        //可弹出
        builder.setPriority(Notification.PRIORITY_MAX);
        builder.setDefaults(Notification.DEFAULT_ALL);

        //锁屏通知
        builder.setVisibility(Notification.VISIBILITY_SECRET);

        //解决未读
        builder.setAutoCancel(true);

//自定义布局
        //内容
        RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.zdy_layout);
        //修改
        remoteViews.setTextViewText(R.id.zdy_name,"我的");
        remoteViews.setTextViewText(R.id.zdy_but,"按");
        remoteViews.setImageViewResource(R.id.zdy_img,R.mipmap.ic_launcher_round);
        //添加内容
        builder.setCustomContentView(remoteViews);

        //交互跳转
        Intent intent = new Intent(this,MainActivity.class);
        PendingIntent activity = PendingIntent.getActivity(this, 0, intent, 0);
        builder.setContentIntent(activity);

        Notification build = builder.build();
        NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        systemService.notify(1,build);

SD卡存储



        //动态获取权限  requestPermissions  Manifest
        requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE},1001);


//读
    public void read(View view) throws IOException {
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
            FileInputStream fileInputStream = new FileInputStream(new File(Environment.getExternalStorageDirectory(), "text.txt"));
            int len = 0 ;
            StringBuffer stringBuffer = new StringBuffer();
            byte[] bytes = new byte[1024];
            while ((len = fileInputStream.read(bytes))!=-1){
                stringBuffer.append(new String(bytes,0,len));
            }
            Toast.makeText(this, stringBuffer.toString()+"", Toast.LENGTH_SHORT).show();
        }
    }



    //写
    public void write(View view) throws IOException {

        //获取是否有sd卡 Environment.getExternalStorageState()
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
            //获取sd卡路径 Environment.getExternalStorageDirectory()
            FileOutputStream fileOutputStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory(), "text.txt"));
            fileOutputStream.write("这就是测试".getBytes());
            fileOutputStream.flush();
            fileOutputStream.close();
        }

    }


//图片的



public void img_read(View view) throws IOException {
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

            File externalStorageDirectory = Environment.getExternalStorageDirectory();

            File file = new File(externalStorageDirectory, "tim.jpg");
            Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
            img.setImageBitmap(bitmap);
        }
    }

    public void img_write(View view) throws IOException {
        new Mytask().execute();

    }

    class Mytask extends AsyncTask<String,Void,String>{

        @Override
        protected String doInBackground(String... strings) {


            try {
                URL url  = new URL("http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg");

                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                InputStream fileInputStream = connection.getInputStream();
                if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                    FileOutputStream fileOutputStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory(), "tim.jpg"));
                    int lne = 0;
                    byte[] bytes = new byte[1024];
                    while ((lne = fileInputStream.read(bytes)) != -1) {
                        fileOutputStream.write(bytes, 0, lne);
                    }
                    fileOutputStream.flush();
                    fileOutputStream.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);

        }
    }





TabLayout和ViewPager连用

package com.example.day007;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;

import com.google.android.material.tabs.TabLayout;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private TabLayout tab;
    private ViewPager vp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        ArrayList<Fragment> fragmentslist = new ArrayList<>();
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());
        fragmentslist.add(new BlankFragment());

        ArrayList<String> titlelist = new ArrayList<>();
        titlelist.add("足球");
        titlelist.add("篮球");
        titlelist.add("排球");
        titlelist.add("排球");
        titlelist.add("排球");
        titlelist.add("排球");
        titlelist.add("排球");
        titlelist.add("排球");
        titlelist.add("排球");
        titlelist.add("排球");


        Myadapter myadapter = new Myadapter(getSupportFragmentManager(),fragmentslist,titlelist);
        vp.setAdapter(myadapter);

        tab.setupWithViewPager(vp);


    }

    private void initView() {
        tab = (TabLayout) findViewById(R.id.tab);
        vp = (ViewPager) findViewById(R.id.vp);
    }


    class Myadapter extends FragmentPagerAdapter{
        ArrayList<Fragment> fragmentslist;
        ArrayList<String> titlelist;

        public Myadapter(@NonNull FragmentManager fm, ArrayList<Fragment> fragmentslist, ArrayList<String> titlelist) {
            super(fm);
            this.fragmentslist = fragmentslist;
            this.titlelist = titlelist;
        }

        @NonNull
        @Override
        public Fragment getItem(int position) {
            return fragmentslist.get(position);
        }

        @Override
        public int getCount() {
            return fragmentslist.size();
        }

        @Nullable
        @Override
        public CharSequence getPageTitle(int position) {
            return titlelist.get(position);
        }
    }

}

菜单

package com.example.day002;

import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private TextView te;
    private TextView te2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        te2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PopupMenu popupMenu = new PopupMenu(MainActivity.this, te2);
                popupMenu.inflate(R.menu.menu);
                popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        int id = item.getItemId();
                        switch (id) {
                            case R.id.one:
                                te.setTextColor(Color.parseColor("#ff0000"));
                                break;
                            case R.id.two:
                                te.setTextColor(Color.parseColor("#00ff00"));
                                break;
                            case R.id.three:
                                te.setTextColor(Color.parseColor("#0000ff"));
                                break;

                        }
                        return false;
                    }
                });
                popupMenu.show();
            }
        });

        registerForContextMenu(te);

    }


    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        getMenuInflater().inflate(R.menu.menu, menu);
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {
        int id = item.getItemId();
        switch (id) {
            case R.id.one:
                te.setTextColor(Color.parseColor("#ff0000"));
                break;
            case R.id.two:
                te.setTextColor(Color.parseColor("#00ff00"));
                break;
            case R.id.three:
                te.setTextColor(Color.parseColor("#0000ff"));
                break;

        }
        return super.onContextItemSelected(item);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        int id = item.getItemId();

        switch (id) {
            case R.id.one:
                Toast.makeText(this, item.getTitle() + "", Toast.LENGTH_SHORT).show();
                break;
            case R.id.two:
                Toast.makeText(this, item.getTitle() + "", Toast.LENGTH_SHORT).show();
                break;
            case R.id.three:
                Toast.makeText(this, "这是图片", Toast.LENGTH_SHORT).show();
                break;

        }


        return super.onOptionsItemSelected(item);
    }

    private void initView() {
        te = (TextView) findViewById(R.id.te);
        te2 = (TextView) findViewById(R.id.te2);
    }
}

传值


 String string = et.getText().toString();
        FragmentManager supportFragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
        OneFragment oneFragment = new OneFragment();
        Bundle bundle = new Bundle();
        bundle.putString("name", string);
        oneFragment.setArguments(bundle);
        fragmentTransaction.replace(R.id.ll, oneFragment);
        fragmentTransaction.commit();





@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_one, container, false);
        onefgTex = (TextView) inflate.findViewById(R.id.onefg_tex);
        Bundle arguments = getArguments();
        if (arguments!=null){
            String name = arguments.getString("name");
            onefgTex.setText(name);
        }

        return inflate;
    }


短信

package com.example.day011;

import androidx.appcompat.app.AppCompatActivity;

import android.Manifest;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Build;
import android.os.Bundle;
import android.provider.Telephony;
import android.view.View;
import android.widget.Toast;

public class Main2Activity extends AppCompatActivity {

    //短信
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            requestPermissions(new String[]{Manifest.permission.READ_SMS},100);
        }

    }

    public void mar(View view) {
        ContentResolver contentResolver = getContentResolver();
        Cursor cursor = contentResolver.query(Telephony.Sms.CONTENT_URI, null, null, null, null);
        if (cursor!=null){
            while (cursor.moveToNext()) {
                String address = cursor.getString(cursor.getColumnIndex(Telephony.Sms.ADDRESS));
                String body = cursor.getString(cursor.getColumnIndex(Telephony.Sms.BODY));
                Toast.makeText(this, address+"----"+body, Toast.LENGTH_SHORT).show();
            }
        }
    }

}

广播

package com.example.day012;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;

public class Main4Activity extends AppCompatActivity {

    private MyReceiver2 myReceiver2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);

        //动态注册
//        myReceiver2 = new MyReceiver2();
//        IntentFilter intentFilter = new IntentFilter();
//        intentFilter.addAction("com.wei");
//        intentFilter.addAction("com.wei1");
//        registerReceiver(myReceiver2,intentFilter);
    }

    //静态发送
    public void send(View view) {
        Intent intent = new Intent();
        intent.setAction("com.wp");
        Bundle bundle = new Bundle();
        bundle.putString("message","默认值");
        intent.putExtras(bundle);
//        sendBroadcast(intent);
        //有序提交
        sendOrderedBroadcast(intent,null);
    }


    public void send2(View view) {
        Intent intent = new Intent();
        intent.setAction("com.wp1");
        Bundle bundle = new Bundle();
        bundle.putString("message1","默认值222");
        intent.putExtras(bundle);
        sendBroadcast(intent);
    }

    //动态发送
    public void d_send(View view) {
        Intent intent = new Intent();
        intent.setAction("com.wei");
        Bundle bundle = new Bundle();
        bundle.putString("message","默认值");
        intent.putExtras(bundle);
        sendBroadcast(intent);
    }
    public void d_send2(View view) {
        Intent intent = new Intent();
        intent.setAction("com.wei1");
        Bundle bundle = new Bundle();
        bundle.putString("message1","默认值222");
        intent.putExtras(bundle);
        sendBroadcast(intent);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(myReceiver2);
    }
}



package com.example.day012;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class MyReceiver extends BroadcastReceiver {

    private static final String TAG = "MyReceiver";
    @Override
    public void onReceive(Context context, Intent intent) {

        String action = intent.getAction();
        if (action.equals("com.wp")){
            Bundle extras = intent.getExtras();
            String message = extras.getString("message");
            Log.i(TAG, "onReceive: "+message);

            //判断是否是有序
            if (isOrderedBroadcast()){
                //关闭
                abortBroadcast();
            }
        }else{
            Bundle extras = intent.getExtras();
            String message = extras.getString("message1");
            Log.i(TAG, "onReceive: "+message);
        }


    }
}

进度条

final NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        final Notification.Builder builder = new Notification.Builder(this);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentText("进度条");

        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int i = 0;
            @Override
            public void run() {
                builder.setProgress(100,i,false);
                i+=2;
                systemService.notify(1,builder.build());
                if (i>=100){
                    builder.setProgress(0,0,true);
                    systemService.notify(1,builder.build());
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                    timer.cancel();
//                    systemService.cancel(1);

                    Notification.Builder builder2 = new Notification.Builder(MainActivity.this);
                    builder2.setSmallIcon(R.mipmap.ic_launcher_round);
                    builder2.setContentText("安装完成");
                    systemService.notify(1,builder2.build());
                }
            }
        },0,100);

连接Service调用方法加提位置

package com.example.day014;

import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private Button start;
    private Button stop;
    private Intent intent;
    private ServiceConnection serviceConnection;
    private MyService.MyBinder binder;


    //开始不连接
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //开启一个Service
                intent = new Intent(MainActivity.this, MyService.class);
                startService(intent);
            }
        });

        stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                stopService(intent);
            }
        });
    }

    private void initView() {
        start = (Button) findViewById(R.id.start);
        stop = (Button) findViewById(R.id.stop);
    }

    //连接调用方法
    public void bind(View view) {
        Intent intent = new Intent(MainActivity.this, MyService.class);

         serviceConnection = new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                //获取里面的方法,先强转
                binder = (MyService.MyBinder) service;
                binder.callshow();
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {

            }
        };
//bind提交
        bindService(intent,serviceConnection,BIND_AUTO_CREATE);
    }

    public void unbind(View view) {
        if (serviceConnection!=null){
            //关闭连接
            unbindService(serviceConnection);
        }
    }

    public void bind2(View view) {
        binder.callshow2();
    }
}



package com.example.day014;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MyService extends Service {
    public MyService() {
    }

    private static final String TAG = "MyService";

    //调用方法
    class MyBinder extends Binder{
        public void callshow(){
            show();
        }
        public void callshow2(){
            show2();
        }
    }

    @Override
    public IBinder onBind(Intent intent) {
        Log.i(TAG, "onBind: ");
        //返回一个自定义的内部类需要继承Binder
        return new MyBinder();
    }


    @Override
    public void onCreate() {
        super.onCreate();
        Log.i(TAG, "onCreate: ");

        Notification.Builder builder = new Notification.Builder(this);
        builder.setAutoCancel(true);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setDefaults(Notification.DEFAULT_ALL);
        builder.setPriority(Notification.PRIORITY_MAX);
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//        manager.notify(1,builder.build());
        //提到第一位置
        startForeground(1,builder.build());
        //销毁提到第一位置
//        stopForeground(true);
    }

    public void show(){
        Log.i(TAG, "show: ");
        Toast.makeText(this, "show", Toast.LENGTH_SHORT).show();
    }

    public void show2(){
        Log.i(TAG, "show: ");
        Toast.makeText(this, "show2222", Toast.LENGTH_SHORT).show();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i(TAG, "onStartCommand: ");
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.i(TAG, "onDestroy: ");
    }

    @Override
    public boolean onUnbind(Intent intent) {
        Log.i(TAG, "onUnbind: ");
        return super.onUnbind(intent);

    }
    
   
}

联系人

package com.example.day011;

import android.Manifest;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ListView lv;
    private ArrayList<String> list;
    private static final String TAG = "MainActivity";
    private SQLiteDatabase readableDatabase;



    //联系人
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();


        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestPermissions(new String[]{Manifest.permission.READ_CONTACTS, Manifest.permission.CALL_PHONE}, 222);
        }

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String s = list.get(position);
                String[] split = s.split("!");
                Toast.makeText(MainActivity.this, "点击", Toast.LENGTH_SHORT).show();

                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_CALL);
                intent.setData(Uri.parse("tel:"+split[1]));
                startActivity(intent);


            }
        });

        Myhalp myhalp = new Myhalp(MainActivity.this, "A1809.db", null, 1);
        readableDatabase = myhalp.getReadableDatabase();

    }


    public void call(View view) {

        ContentResolver contentResolver = getContentResolver();
        Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
        list = new ArrayList<>();
        if (cursor != null) {
            while (cursor.moveToNext()) {
                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                String call = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//                Toast.makeText(this, "姓名:" + name + "---电话:" + call, Toast.LENGTH_SHORT).show();
                list.add(name+"!"+call);


                String sql ="select * from number where name=? and call+?";
                Cursor cursor1 = readableDatabase.rawQuery(sql, new String[]{name, call});
                if (cursor1!=null){
                    if (!cursor1.moveToNext()) {
                        ContentValues contentValues = new ContentValues();
                        contentValues.put("name",name);
                        contentValues.put("call",call);
                        readableDatabase.insert("number", null, contentValues);
                    }
                }
                cursor1.close();

            }
            cursor.close();
            ArrayAdapter<String> stringArrayAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,list);
            lv.setAdapter(stringArrayAdapter);
        }
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == 222 && grantResults[0] == 0) {
//            Toast.makeText(this, "成功", Toast.LENGTH_SHORT).show();
        } else {
//            Toast.makeText(this, "失败", Toast.LENGTH_SHORT).show();
        }
    }

    private void initView() {
        lv = (ListView) findViewById(R.id.lv);
    }

    public void showAll(View view) {
        Cursor cursor = readableDatabase.query("number", null, null, null, null, null, null);
        if (cursor != null) {
            while (cursor.moveToNext()) {
                String name = cursor.getString(cursor.getColumnIndex("name"));
                String call = cursor.getString(cursor.getColumnIndex("call"));
                String id = cursor.getString(cursor.getColumnIndex("id"));
                Log.i(TAG, "showAll:id:"+id +"--name:"+name+"--call"+call+"\n");
            }
        }
    }
}

两下退出

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode==KeyEvent.KEYCODE_BACK){
            if (System.currentTimeMillis() - i >2000){
                Toast.makeText(this, "再按结束", Toast.LENGTH_SHORT).show();
                i=System.currentTimeMillis();
                return true;

            }else{
                finish();
            }
        }
        return super.onKeyDown(keyCode, event);
    }

轮播

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        //系统
        final ArrayList<Fragment> fragments = new ArrayList<>();
        fragments.add(new OneFragment());
        fragments.add(new TwoFragment());
        fragments.add(new ThreekFragment());
        MyFragmentAdapter myFragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager(), fragments);
        vwv.setAdapter(myFragmentAdapter);

        final ArrayList<ImageView> imageViews = new ArrayList<>();
        //添加底部控制器
        for (int i = 0; i <fragments.size() ; i++) {
            final ImageView imageView = new ImageView(this);
            imageView.setPadding(20,20,20,20);
            imageView.setImageResource(R.drawable.yuan_f);
            if (i==0){
                imageView.setImageResource(R.drawable.yuan_t);
            }
            imageViews.add(imageView);
            ll.addView(imageView);
        }


//        //自己动
//        final Timer timer = new Timer();
//        timer.schedule(new TimerTask() {
//            int i=0;
//            @Override
//            public void run() {
//
//                runOnUiThread(new Runnable() {
//                    @Override
//                    public void run() {
//                        vwv.setCurrentItem(i);
//                    }
//                });
//                i++;
//                if (i==fragments.size()){
//                    timer.cancel();
//                }
//            }
//        },0,3000);


        for (int i = 0; i < imageViews.size(); i++) {
            ImageView imageView = imageViews.get(i);
            final int finalI = i;

            imageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    vwv.setCurrentItem(finalI);
                    for (int z = 0; z < imageViews.size(); z++) {
                        ImageView imageView = imageViews.get(z);
                        if (z== finalI){
                            imageView.setImageResource(R.drawable.yuan_t);
                        }else{
                            imageView.setImageResource(R.drawable.yuan_f);
                        }
                    }
                }
            });

        }

        //监听器
        vwv.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {

                for (int i = 0; i < imageViews.size(); i++) {
                    ImageView imageView = imageViews.get(i);
                    if (i==position){
                        imageView.setImageResource(R.drawable.yuan_t);
                    }else{
                        imageView.setImageResource(R.drawable.yuan_f);
                    }
                }

                if (position == fragments.size() - 1) {
                    Toast.makeText(MainActivity.this, "最后一页", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

        //自定义填充
//        ArrayList<String> list = new ArrayList<>();
//        for (int i = 0; i <10 ; i++) {
//            list.add("第"+i+"个");
//        }
//
//        Myadapter myadapter = new Myadapter(list, this);
//        vwv.setAdapter(myadapter);

    }

    private void initView() {
        vwv = (ViewPager) findViewById(R.id.vwv);
        ll = (LinearLayout) findViewById(R.id.ll);
    }


    class MyFragmentAdapter extends FragmentPagerAdapter {

        private ArrayList<Fragment> fragments;

        public MyFragmentAdapter(@NonNull FragmentManager fm, ArrayList<Fragment> fragments) {
            super(fm);
            this.fragments = fragments;
        }

        @NonNull
        @Override
        public Fragment getItem(int position) {
            return fragments.get(position);
        }

        @Override
        public int getCount() {
            return fragments.size();
        }
    }

内部map存储SP

public void du(View view) {
        //内部存Map
        SharedPreferences.Editor edit = getSharedPreferences("one", MODE_PRIVATE).edit();
        edit.putBoolean("bool",true);
        edit.putString("string","这是一个字符串");
        edit.putFloat("flot",1.1f);
        edit.putInt("it",3);
        edit.putLong("long",11111111);
        edit.commit();

    }

    public void xie(View view) {
        SharedPreferences one = getSharedPreferences("one", MODE_PRIVATE);
        boolean bool = one.getBoolean("bool", false);
        int it = one.getInt("it", 333);
        String string = one.getString("strin", "这是取不到的默认值");
        Toast.makeText(this, it+":"+string, Toast.LENGTH_SHORT).show();
    }

内部open储存

 write.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    FileOutputStream fileOutputStream = openFileOutput("aa.txt", MODE_PRIVATE);
                    fileOutputStream.write("这是默认值".getBytes());
                    fileOutputStream.close();
                    fileOutputStream.flush();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });


        read.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    FileInputStream fileInputStream = openFileInput("aa.txt");
                    int len = 0;
                    StringBuffer stringBuffer = new StringBuffer();
                    byte[] bytes = new byte[1024];
                    while ((len=fileInputStream.read(bytes))!=-1){
                        stringBuffer.append(new String(bytes,0,len));
                    }

                    Toast.makeText(MainActivity.this, stringBuffer.toString()+"", Toast.LENGTH_SHORT).show();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

软件之间Service通讯返回

package com.example.day018;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.widget.Toast;

import aidl.IMyAidlInterface;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = new Intent();
        intent.setPackage("com.example.day017");
        intent.setAction("com.nansil");
        ServiceConnection serviceConnection = new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {

                IMyAidlInterface iMyAidlInterface = IMyAidlInterface.Stub.asInterface(service);
                try {
                    int add = iMyAidlInterface.add(3, 4);
                    int jian = iMyAidlInterface.jian(8, 7);
                    Toast.makeText(MainActivity.this, add+"加法", Toast.LENGTH_SHORT).show();
                    Toast.makeText(MainActivity.this, jian+"减法", Toast.LENGTH_SHORT).show();
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {

            }
        };
        bindService(intent,serviceConnection,BIND_AUTO_CREATE);
    }
}




package com.example.day017;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;

import aidl.IMyAidlInterface;

public class MyService extends Service {
    public MyService() {
    }

    IMyAidlInterface.Stub stub = new IMyAidlInterface.Stub() {
        @Override
        public int add(int a, int b) throws RemoteException {
            return a+b;
        }

        @Override
        public int jian(int a, int b) throws RemoteException {
            return a-b;
        }
    };

    @Override
    public IBinder onBind(Intent intent) {

        return stub;
    }
}

事务

 //创建事务
        final FragmentManager manager = getSupportFragmentManager();
        final FragmentTransaction fragmentTransaction = manager.beginTransaction();
        //增加
        fragmentTransaction.add(R.id.ll, oneFragment);
        fragmentTransaction.add(R.id.ll, twoBlankFragment);

        //删除
//        fragmentTransaction.remove(oneFragment);
        //修改
//        fragmentTransaction.replace(R.id.ll,new OneFragment());
        //隐藏
        fragmentTransaction.hide(oneFragment);
        fragmentTransaction.hide(twoBlankFragment);
//        //显示
//        fragmentTransaction.show(oneFragment);

数据库外部软件获取

package com.example.day009;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;

public class MyContentProvider extends ContentProvider {
    private SQLiteDatabase readableDatabase;
    public MyContentProvider() {
    }

    @Override
    public int delete(Uri uri, String selection, String[] selectionArgs) {
        return readableDatabase.delete("student",selection,selectionArgs);
    }

    @Override
    public String getType(Uri uri) {
        // TODO: Implement this to handle requests for the MIME type of the data
        // at the given URI.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public Uri insert(Uri uri, ContentValues values) {
        readableDatabase.insert("student",null,values);
        return uri;
    }

    @Override
    public boolean onCreate() {
        Myhelp myhelp = new Myhelp(getContext(), "A1809.db",null, 2);
         readableDatabase = myhelp.getReadableDatabase();
         if (readableDatabase!=null){
             return true;
         }
        return false;
    }

    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        Cursor student = readableDatabase.query("student", projection, selection, selectionArgs, null, null, sortOrder);
        return student;
    }

    @Override
    public int update(Uri uri, ContentValues values, String selection,
                      String[] selectionArgs) {
        return readableDatabase.update("student",values,selection,selectionArgs);
    }
}

















package com.example.day010;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private ContentResolver contentResolver;
    private Uri parse;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         contentResolver = getContentResolver();
        parse = Uri.parse("content://com.wei");

    }

    public void selet(View view) {
        Cursor cursor = contentResolver.query(parse, null, null, null, null);
        if (cursor!=null){
            while (cursor.moveToNext()){
                String nam = cursor.getString(cursor.getColumnIndex("nam"));
                String age = cursor.getString(cursor.getColumnIndex("age"));
                String id = cursor.getString(cursor.getColumnIndex("id"));
                Toast.makeText(this, nam+age+id+"", Toast.LENGTH_SHORT).show();
            }
            cursor.close();
        }
    }

    public void insert(View view) {
        ContentValues contentValues = new ContentValues();
        contentValues.put("nam","孙悟空");
        contentResolver.insert(parse, contentValues);
    }

    public void updata(View view) {
        ContentValues contentValues = new ContentValues();
        contentValues.put("nam","憋");
        contentResolver.update(parse,contentValues,"id=?",new String[]{"2"});
    }


    public void delet(View view) {
        contentResolver.delete(parse,"id=?",new String[]{"3"});
    }
}


数据库增删改查

package com.example.day009;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    SQLiteDatabase readableDatabase;
    private static final String TAG = "MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //连接数据库
        Myhelp myhelp = new Myhelp(MainActivity.this,"A1809.db",null,2);
        readableDatabase = myhelp.getReadableDatabase();
    }


    public void insert(View view) {

//        ContentValues contentValues = new ContentValues();
//        contentValues.put("nam","小龙");
//        contentValues.put("age","88");
//        readableDatabase.insert("student",null,contentValues);

        //事务
        readableDatabase.beginTransaction();

        String sql = "insert into student values(null,?,?)";
        readableDatabase.execSQL(sql,new Object[]{"老王","22"});
        int z = 10/0;
        String sql2 = "delete from student where id=? ";
        readableDatabase.execSQL(sql2,new Object[]{3});

        readableDatabase.setTransactionSuccessful();
        readableDatabase.endTransaction();

    }

    public void select(View view) {

//        Cursor cursor = readableDatabase.query("student", null, null, null, null, null, null);
//        if (cursor!=null){
//            while (cursor.moveToNext()){
//                String nam = cursor.getString(cursor.getColumnIndex("nam"));
//                String age = cursor.getString(cursor.getColumnIndex("age"));
//                String id = cursor.getString(cursor.getColumnIndex("id"));
//                Toast.makeText(this, nam+age+id+"", Toast.LENGTH_SHORT).show();
//            }
//        }
        String sql = "select * from student";
        Cursor cursor = readableDatabase.rawQuery(sql, null);

        if (cursor!=null){
            while (cursor.moveToNext()){
                String nam = cursor.getString(cursor.getColumnIndex("nam"));
                String age = cursor.getString(cursor.getColumnIndex("age"));
                String id = cursor.getString(cursor.getColumnIndex("id"));
                Toast.makeText(this, nam+age+id+"", Toast.LENGTH_SHORT).show();
            }
            cursor.close();
        }
    }

    public void update(View view) {
//        ContentValues contentValues = new ContentValues();
//        contentValues.put("nam","大龙");
//        int student = readableDatabase.update("student", contentValues, "id=?", new String[]{"2"});

        String sql = "update student set nam=? where id=? ";
        readableDatabase.execSQL(sql,new Object[]{"二嘎子",3});
    }

    public void delete(View view) {
//        int student = readableDatabase.delete("student", "id=?", new String[]{"1"});
//        Log.i(TAG, "delete: "+student);
        String sql = "delete from student where id=? ";
        readableDatabase.execSQL(sql,new Object[]{5});

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        readableDatabase.close();
    }
}

所有普通弹框

package com.example.day001;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }

    public void text11(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("温馨提示");




        builder.setNegativeButton("关闭", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, "关闭", Toast.LENGTH_SHORT).show();

            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, "确定", Toast.LENGTH_SHORT).show();

            }
        });

        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }

    public void text22(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("温馨提示");
        final String[] s ={"男人","女人","孩子"};

        builder.setSingleChoiceItems(s, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, s[which]+"", Toast.LENGTH_SHORT).show();
//                alertDialog.dismiss();
            }
        });

        builder.setNegativeButton("关闭", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, "关闭", Toast.LENGTH_SHORT).show();

            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, "确定", Toast.LENGTH_SHORT).show();

            }
        });
        AlertDialog alertDialog = builder.create();
        alertDialog.show();

    }

    public void text33(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("温馨提示");
        final String[] s ={"足球","篮球","排球"};
        final boolean[] b={true,true,true};

        builder.setMultiChoiceItems(s, b, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {

            }
        });

        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                for (int i = 0; i < b.length; i++) {
                    if (b[i]){
                        Toast.makeText(Main2Activity.this, s[i]+"", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
        builder.setCancelable(true);
        AlertDialog alertDialog = builder.create();
        alertDialog.show();

    }

    public void text44(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("温馨提示");

        View inflate = LayoutInflater.from(this).inflate(R.layout.zdy_layout, null);
        builder.setView(inflate);
        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }

    public void text55(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("温馨提示");
        final String[] s ={"足球","篮球","排球"};
        builder.setItems(s, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, s[which]+"", Toast.LENGTH_SHORT).show();
            }
        });

        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }

    public void text66(View view) {
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progressDialog.setMax(100);
        progressDialog.setTitle("温馨提示");
        progressDialog.setIcon(R.mipmap.ic_launcher);

        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int i=0;
            @Override
            public void run() {
                i++;
                progressDialog.setProgress(i);
                if (i==progressDialog.getMax()){
                    timer.cancel();
                    progressDialog.dismiss();
                }
            }
        },0,100);
        progressDialog.show();

    }


    public void text77(View view) {
        Calendar calendar = Calendar.getInstance();
        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                Toast.makeText(Main2Activity.this, year+"年"+month+"月"+dayOfMonth+"日", Toast.LENGTH_SHORT).show();
            }
        },calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)).show();
    }


    public void text88(View view) {
        Calendar c = Calendar.getInstance();
        new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Toast.makeText(Main2Activity.this, hourOfDay+"点"+minute+"分", Toast.LENGTH_SHORT).show();
            }
        },c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),true).show();
    }



}

验证码

package com.example.day012;

import android.Manifest;
import android.content.ContentResolver;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.provider.Telephony;
import android.widget.EditText;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private EditText edit;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            String obj = (String) msg.obj;
            edit.setText(obj);
        }
    };

    //验证码
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            requestPermissions(new String[]{Manifest.permission.READ_SMS},100);
        }

        ContentResolver contentResolver = getContentResolver();
        Myob myob = new Myob(handler,contentResolver);
        contentResolver.registerContentObserver(Telephony.Sms.CONTENT_URI,true,myob);

    }

    private void initView() {
        edit = (EditText) findViewById(R.id.edit);
    }
}
.


private ContentResolver contentResolver;
    private Handler handler;


    public Myob(Handler handler, ContentResolver contentResolver) {
        super(handler);
        this.contentResolver = contentResolver;
        this.handler=handler;
    }

    @Override
    public void onChange(boolean selfChange) {
        super.onChange(selfChange);

        Cursor query = contentResolver.query(Telephony.Sms.CONTENT_URI, null, null, null, null);
        if (query!=null){
            query.moveToFirst();
            String string = query.getString(query.getColumnIndex(Telephony.Sms.BODY));
            Message obtain = Message.obtain();
            obtain.obj=string;
            handler.sendMessage(obtain);
        }

    }





真自定义可修改弹框

package com.example.day001;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;

public class MyDialogtwo extends Dialog {


    private Button xx;
    private TextView txtt;
    private Button on;
    private Button yes;
    private String strtxtt;

    public void setStrtxtt(String strtxtt) {
        this.strtxtt = strtxtt;
    }

    public MyDialogtwo(@NonNull Context context) {
        super(context);
    }

    public interface MyonClick{
        void OnClick();
    }

    private MyonClick myonClick;

    public void setMyonClick(MyonClick myonClick) {
        this.myonClick = myonClick;
    }

    public interface MyyesClick{
        void OnClick();
    }

    private MyyesClick myyesClick;

    public void setMyyesClick(MyyesClick myyesClick) {
        this.myyesClick = myyesClick;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pj_layout);
        initView();

        if (strtxtt!=null){
            txtt.setText(strtxtt);
        }

        xx.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getContext(), "关闭成功", Toast.LENGTH_SHORT).show();
                dismiss();
            }
        });

        on.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myonClick.OnClick();
                dismiss();
            }
        });

        yes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myyesClick.OnClick();
                dismiss();
            }
        });


    }

    private void initView() {
        xx = (Button) findViewById(R.id.xx);
        txtt = (TextView) findViewById(R.id.txtt);
        on = (Button) findViewById(R.id.on);
        yes = (Button) findViewById(R.id.yes);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值