第三十二天FragmentAdapter、数据存储、SQLite

Fragment的生命周期

这里写图片描述

FragmentAdapter

activity_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">
    </android.support.v4.view.ViewPager>
<RadioGroup
    android:id="@+id/radiogroup"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <RadioButton
        android:id="@+id/radiobutton1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/btn1_drawable"
        //android:checked="true"//默认选中
        style="@style/RadioButton"/>//写在value的styles中
    <RadioButton
        android:id="@+id/radiobutton2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/btn2_drawable"
        style="@style/RadioButton"/>
    <RadioButton
        android:id="@+id/radiobutton3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/btn3_drawable"
        style="@style/RadioButton"/>
</RadioGroup>
</LinearLayout>

styles

<style name="RadioButton" parent="Widget.AppCompat.CompoundButton.RadioButton">
        <item name="android:gravity">center</item>
        <item name="android:layout_weight">1</item>
        <item name="android:button">@null</item>
        <item name="android:layout_gravity">bottom</item>
        <item name="android:textSize">15dp</item>
    </style>

MyFragment(SecondFragment、ThirdFragment类似)

public class MyFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_layout,null);
        return view;
    }
}

MyFragmentAdapter

public class MyFragmentAdapter extends FragmentPagerAdapter {
    private List<Fragment> mFragment;

    public MyFragmentAdapter(FragmentManager fm,List<Fragment> mFragment) {
        super(fm);
        this.mFragment=mFragment;
    }

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

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

MainActivity

public class MainActivity extends FragmentActivity {
    private RadioGroup mRadioGroup;
    private MyFragmentAdapter mAdapter;
    private List<Fragment> mFragment;
    private MyFragment mMyFragment;
    private SecondFragment mSecondFragment;
    private ThirdFragment mThirdFragment;
    private FragmentManager mFragmentManager;
    private ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_layout);
        mRadioGroup= (RadioGroup) findViewById(R.id.radiogroup);
        mViewPager= (ViewPager) findViewById(R.id.viewpager);
        mFragmentManager=getSupportFragmentManager();
        mMyFragment=new MyFragment();
        mSecondFragment=new SecondFragment();
        mThirdFragment=new ThirdFragment();
        mFragment=new ArrayList<>();
        mFragment.add(mMyFragment);
        mFragment.add(mSecondFragment);
        mFragment.add(mThirdFragment);
        mAdapter=new MyFragmentAdapter(mFragmentManager,mFragment);
        mViewPager.setAdapter(mAdapter);
        mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.radiobutton1:
                        mViewPager.setCurrentItem(0);
                        break;
                    case R.id.radiobutton2:
                        mViewPager.setCurrentItem(1);
                        break;
                    case R.id.radiobutton3:
                        mViewPager.setCurrentItem(2);
                        break;
                    default:
                        break;
                }
            }
        });
        mRadioGroup.check(R.id.radiobutton1);
        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }
            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0:
                        mRadioGroup.check(R.id.radiobutton1);
                        break;
                    case 1:
                        mRadioGroup.check(R.id.radiobutton2);
                        break;
                    case 2:
                        mRadioGroup.check(R.id.radiobutton3);
                        break;
                    default:
                        break;
                }
            }
            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }
}

这里写图片描述这里写图片描述

SQLite

activity_main

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="创建数据库"/>
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="插入数据"/>
</LinearLayout>

MySQLiteOpenHelper

public class MySQLiteOpenHelper extends SQLiteOpenHelper {

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

    public MySQLiteOpenHelper(Context context, String name){
        this(context, name,null,1);

    }
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table if not exists user(id integer primary key autoincrement,nane varchar(20),password varchar(20))");

    }
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

MainActivity

public class MainActivity extends Activity implements View.OnClickListener{
    private Button mButton;
    private Button mButtonInsert;
    private SQLiteDatabase database;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButton= (Button) findViewById(R.id.button);
        mButtonInsert= (Button) findViewById(R.id.button2);
        mButton.setOnClickListener(this);
        mButtonInsert.setOnClickListener(this);
        MySQLiteOpenHelper helper=new MySQLiteOpenHelper(getApplicationContext(),"MyDataBase");
        database=helper.getWritableDatabase();

    }

    @Override
    public void onClick(View view) {
        switch(view.getId()){
            case R.id.button:
                Toast.makeText(MainActivity.this,"创建数据库",Toast.LENGTH_LONG).show();
                break;
            case R.id.button2:
                ContentValues values=new ContentValues();
                values.put("nane","zhangsan");
                values.put("password","123");
                database.insert("user1",null,values);
                break;
            default:
                break;
        }
    }
}

这里写图片描述


这里写图片描述

数据存储

MainActivity

public class MainActivity extends Activity implements View.OnClickListener{
    private TextView mTextView;
    private EditText mEditText;
    private Button mButton1;
    private Button mButton2;
    private Button mButton3;
    private Button mButton4;
    private Button mButtonWrite;
    private Button mButtonSDCard;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextView= (TextView) findViewById(R.id.textview_read);
        mEditText= (EditText) findViewById(R.id.edittext_write);
        mButton1= (Button) findViewById(R.id.button1);
        mButton2= (Button) findViewById(R.id.button2);
        mButton3= (Button) findViewById(R.id.button3);
        mButton4= (Button) findViewById(R.id.button4);
        mButtonWrite= (Button) findViewById(R.id.button_cachewrite_dir);
        mButtonSDCard= (Button) findViewById(R.id.button_cache_sdcard);
        mButton1.setOnClickListener(this);
        mButton2.setOnClickListener(this);
        mButton3.setOnClickListener(this);
        mButton4.setOnClickListener(this);
        mButtonWrite.setOnClickListener(this);
        mButtonSDCard.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.button1:
                write();
                break;
            case R.id.button2:
                read();
                break;
            case R.id.button3:
                writeFile();
                break;
            case R.id.button4:
                readFile();
                break;
            case R.id.button_cachewrite_dir:
               cacheWrite();
                break;
            case R.id.button_cache_sdcard:
               sdcardWrite();
                break;
            default:
                break;
        }
    }

    public  void write(){
        SharedPreferences preferences=getSharedPreferences("SharedPreferences",MODE_PRIVATE);
        SharedPreferences.Editor editor=preferences.edit();
        editor.putString("edittext_write",mEditText.getText().toString());
        editor.commit();
    }
    public void read(){
        SharedPreferences preferences2=getSharedPreferences("SharedPreferences",MODE_PRIVATE);
        String content=preferences2.getString("edittext_write","默认值");
        mTextView.setText(content);
    }
    public void writeFile(){
        try {
            FileOutputStream fos=openFileOutput("hello",MODE_PRIVATE);
            PrintWriter writer=new PrintWriter(fos);
            writer.write("你好,世界");
            writer.flush();
            writer.close();
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void readFile(){
        try {
            FileInputStream fis=openFileInput("hello");
            BufferedReader br=new BufferedReader(new InputStreamReader(fis));
            String line=br.readLine();
            while (line!=null){
                Log.d("readline",line);
                line=br.readLine();
            }
            br.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void cacheWrite(){
        File file=new File(getCacheDir(),"hello.txt");
        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                FileOutputStream fos = new FileOutputStream(file);
                PrintWriter writer=new PrintWriter(new OutputStreamWriter(fos));
                writer.write("新的缓存内容");
                writer.flush();
                writer.close();
                fos.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    public void sdcardWrite(){
        File file1=new File(Environment.getExternalStorageDirectory(),"helloworld.txt");
        if(!file1.exists()){
            try {
                file1.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                FileOutputStream fos = new FileOutputStream(file1);
                PrintWriter writer=new PrintWriter(new OutputStreamWriter(fos));
                writer.write("本地存储");
                writer.flush();
                writer.close();
                fos.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

TextView读取EditText写入的数据
这里写图片描述
写入的文件名:
这里写图片描述
xml文件内容:

这里写图片描述


文件名为hello的file:内容:你好,世界
这里写图片描述
这里写图片描述

这里写图片描述


写在cache文件夹下hello.txt文件
这里写图片描述

这里写图片描述


写入SD卡的数据:
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值