Android 基础学习笔记

文件的储存
内部储存 :是指将文件储存在data目录下
外部储存:指将文件储存到本地目录
整体来说和java io操作基本一个套路

 file=new File(Environment.getExternalStorageDirectory(),"new.txt");

        baochun.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FileOutputStream fos=null;
                String text= jis.getText().toString();

                try {
                    fos=new FileOutputStream(file);
                    fos.write(text.getBytes());
                    fos.flush();
                    Toast.makeText(jishi.this,"保存成功",Toast.LENGTH_SHORT).show();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();

                } catch (IOException e) {
                    e.printStackTrace();

                }finally {
                    if(fos!=null)
                    {
                        try {
                            fos.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }


            }
        });
    }

还需要在xml文件中配置储存的权限

**  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
/>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>**

Handler消息传递机制
1.由于支线程不能操作主线程的组件,比如settext什么的,所以要通过handler间接操作

final Handler handler=new Handler(){
            @Override
            public void handleMessage(@NonNull Message msg) {
                super.handleMessage(msg);
                if(msg.what==0x123)
                {
                    xiaoxi.setText("变一条信息");
                }
            }
        };
xia.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Thread thread=new Thread(new Runnable() {
            @Override
            public void run() {

                handler.sendEmptyMessage(0x123);//发送空消息
            }
        });
            thread.start();

handler消息传递机制还能实现进度条每秒减少一点的效果;

Handler handler1=new Handler()
    {
        @Override
        public void handleMessage(@NonNull Message msg) {

            super.handleMessage(msg);
            if(TIME-mprogress>0)
            {
                mprogress++;
                times.setProgress(TIME-mprogress);
                handler1.sendEmptyMessageDelayed(TIMEMSG,1000);

            }
            else
            {
                Toast.makeText(duo.this,"时间到",Toast.LENGTH_SHORT).show();;
            }
        }
    };
public class duo extends AppCompatActivity {

    private TextView xiaoxi;
    private ProgressBar times;
final  int TIME=60;//定义时间长度
    final int TIMEMSG=0x001;

    private  int mprogress=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_duo);
        xiaoxi = findViewById(R.id.xiaoxi);
        times = findViewById(R.id.time);

        Button xia = findViewById(R.id.xia);
handler1.sendEmptyMessage(TIMEMSG);

猜你喜欢

转载自blog.csdn.net/qq_45541497/article/details/106933140