先上效果:

Fragment实现android的设置界面切换效果_第1张图片

主界面代码:

/** * 演示用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;}}

源码下载地址: 点击这里

更多相关文章

  1. Android 获取系统短信内容
  2. Pro Android 4 第六章 构建用户界面以及使用控件(一)
  3. Android 使用富文本显示web上的内容
  4. Android 用户界面---菜单(Menus 一)
  5. android 使用html做应用程序界面初探
  6. Android UI常用实例 如何实现欢迎界面(Splash Screen)

随机推荐

  1. TextView处理显示字数过长
  2. IPC进程间通信
  3. 使用Python开发Android应用程序:第一节 在
  4. android第五天早:抗锯齿和全屏
  5. Android XML 不常用属性
  6. Hello World
  7. 系出名门Android(7) - 控件(View)之ZoomC
  8. android activity之间平滑切换
  9. Android开发工具——Android studio1.0正
  10. 让Ubuntu和Android同时运行(Ubuntu on And