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卡的数据: