Fragment实现android的设置界面切换效果
16lz
2021-01-23
先上效果:
主界面代码:
/** * 演示用Fragment实现平板的<设置>界面 * @author Melon 2013-11-19 * */public class MainActivity extends Activity {private ListView lv_main_title;private static String[] titles = { "Fragment1", "Fragment2", "Fragment3" };private FragmentManager fragmentManager;private int currentItem;//private View preClickedItem;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();fragmentManager = getFragmentManager();showCurrentContent(1);//显示默认条目内容}private void initView() {lv_main_title = (ListView) findViewById(R.id.lv_main_title);lv_main_title.setAdapter(new BaseAdapter(){@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Log.i("WYL", "getView");TextView tv = new TextView(getApplicationContext());tv.setText(titles[position]);tv.setGravity(Gravity.CENTER);tv.setTextColor(Color.BLACK);tv.setTextSize(40);if(position == currentItem){tv.setBackgroundColor(Color.BLUE);}return tv;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic Object getItem(int position) {return null;}@Overridepublic int getCount() {return titles.length;}});lv_main_title.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {showCurrentContent(position);//如果不用adapter更新数据,可以用以下代码,切换条目颜色 (就效率来说,下面的更好,adapter更新会调用全部条目的getView(),而下面的方式只会调用一个)//if(preClickedItem != null)//preClickedItem.setBackgroundColor(Color.parseColor("#FFC125"));//view.setBackgroundColor(Color.BLUE);//preClickedItem = view;}});}/** * 显示条目内容 * @param item 指定条目,对应listview条目 ,从0开始 */private void showCurrentContent(int item) {if(item >= titles.length){Toast.makeText(getApplicationContext(), "内容不存在...", 0).show();return;}//点击时判断,如果是当前条目,则提示用户if(currentItem == item){Toast.makeText(getApplicationContext(), "重复点击", 0).show();return;}Fragment fragment = null;switch (item) {case 0:fragment = new Fragment1();break;case 1:fragment = new Fragment2();break;case 2:fragment = new Fragment3();break;}FragmentTransaction beginTransaction = fragmentManager.beginTransaction();beginTransaction.replace(R.id.ll_main_content, fragment);beginTransaction.commit();//通知数据更新((BaseAdapter)lv_main_title.getAdapter()).notifyDataSetChanged();currentItem = item;}}
源码下载地址: 点击这里
更多相关文章
- Android 获取系统短信内容
- Pro Android 4 第六章 构建用户界面以及使用控件(一)
- Android 使用富文本显示web上的内容
- Android 用户界面---菜单(Menus 一)
- android 使用html做应用程序界面初探
- Android UI常用实例 如何实现欢迎界面(Splash Screen)