1.布局文件
<FrameLayout
android:id="@+id/container_roots"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"/>
2.主页面
import android.Manifest;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.app.FragmentManager;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RadioGroup;
import com.xinrui.tvsetting.common.CallbackListener;
import com.xinrui.tvsetting.fragment.NetworkFragment;
import com.xinrui.tvsetting.fragment.RootFragment;
import com.xinrui.tvsetting.fragment.WallPaperFragment;
public class MainActivity extends Activity implements CallbackListener {
private String TAG = "MainActivity";
private RadioGroup radioGroup;
private RootFragment rootFragment;
private NetworkFragment networkFragment;
private FragmentManager fragmentManager;
private WallPaperFragment wallPaperFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
fragmentManager = getFragmentManager();
initView();
checkPermission();
}
public void initView(){
radioGroup = (RadioGroup)findViewById(R.id.file_type);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.all_type:
setTabSelection(0);
break;
case R.id.doc_type:
setTabSelection(1);
break;
case R.id.pic_type:
break;
case R.id.audio_type:
break;
case R.id.video_type:
break;
}
}
});
setTabSelection(0);
}
private void setTabSelection(int index) {
// 开启一个Fragment事务
FragmentTransaction transaction = fragmentManager.beginTransaction();
// 先隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上的情况
hideFragments(transaction);
switch (index) {
case 0:
if (rootFragment == null) {
// 如果MessageFragment为空,则创建一个并添加到界面上
rootFragment = new RootFragment();
rootFragment.setCallbackListener(this);
transaction.add(R.id.container_roots, rootFragment);
} else {
// 如果MessageFragment不为空,则直接将它显示出来
transaction.show(rootFragment);
}
break;
case 1:
if (networkFragment == null) {
// 如果MessageFragment为空,则创建一个并添加到界面上
networkFragment = new NetworkFragment();
transaction.add(R.id.container_roots, networkFragment);
} else {
// 如果MessageFragment不为空,则直接将它显示出来
transaction.show(networkFragment);
}
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
if (wallPaperFragment == null) {
// 如果MessageFragment为空,则创建一个并添加到界面上
wallPaperFragment = new WallPaperFragment();
wallPaperFragment.setCallbackListener(this);
transaction.add(R.id.container_roots, wallPaperFragment);
} else {
// 如果MessageFragment不为空,则直接将它显示出来
transaction.show(wallPaperFragment);
}
break;
case 7:
break;
}
transaction.commit();
}
private void hideFragments(FragmentTransaction transaction) {
if (rootFragment != null)transaction.hide(rootFragment);
if (networkFragment != null) transaction.hide(networkFragment);
if(wallPaperFragment!=null)transaction.hide(wallPaperFragment);
}
public void checkPermission() {
boolean isGranted = true;
if (android.os.Build.VERSION.SDK_INT >= 23) {
if (this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
//如果没有写sd卡权限
isGranted = false;
}
if (this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
isGranted = false;
}
if (this.checkSelfPermission(Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
isGranted = false;
}
if (this.checkSelfPermission(Manifest.permission.WRITE_SETTINGS) != PackageManager.PERMISSION_GRANTED) {
isGranted = false;
}
if (this.checkSelfPermission(Manifest.permission.CHANGE_CONFIGURATION) != PackageManager.PERMISSION_GRANTED) {
isGranted = false;
}
if (this.checkSelfPermission(Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) {
isGranted = false;
}
if (!isGranted) {
this.requestPermissions(
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission
.ACCESS_FINE_LOCATION, Manifest.permission.INTERNET, Manifest.permission.WRITE_SETTINGS,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CHANGE_CONFIGURATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.VIBRATE
}, 102);
this.requestPermissions(
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission
.ACCESS_FINE_LOCATION, Manifest.permission.INTERNET
}, 102);
this.requestPermissions(
new String[]{Manifest.permission.SYSTEM_ALERT_WINDOW
}, 102);
}
}
}
@Override
public void selected_item(int position) {
setTabSelection(position);
}
}