文档章节

Fragment界面切换之Fragment功能的实现

 易水寒521
发布于 2015/01/12 14:18
字数 937
阅读 28
收藏 0

Fragment1.java:

package com.example.fragment;
import android.app.ListFragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class Fragment1 extends ListFragment {
 
 LayoutInflater mInflater = null; 
 String[] s1 = { "ͼ1", "ͼ2", "ͼ3", "ͼ4", "ͼ5", "ͼ6", "ͼ7", "ͼ8", "ͼ9", "ͼ10" };
 String[] s2 = { "֢ˇͼ1", "֢ˇͼ2", "֢ˇͼ3", "֢ˇͼ4", "֢ˇͼ5", "֢ˇͼ6", "֢ˇͼ7",
   "֢ˇͼ8", "֢ˇͼ9", "֢ˇͼ10" };

 int[] i = { R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher }; 
 MyAdapter adapter=null;
@Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) { 
  View x=inflater.inflate(R.layout.fragment1, null);
  adapter=new MyAdapter(getActivity());
  setListAdapter(adapter);   
  return x;}
 //֣ܷ˂ݾ
 @Override
 public void onListItemClick(ListView l, View v, int position, long id) {
  System.out.println(l.getOnItemClickListener());
//  if(l.getId()==position){
//   Toast.makeText(getActivity(), "ţ֣‹ͼ"+l.getId(), 1000).show();
//  }
  int i=(int) l.getItemIdAtPosition(position);
  if(position==i){
   Toast.makeText(getActivity(), "ţ֣‹ͼ"+(i+1), 500).show();
  }
//  switch (position) {
//  case i:
//   Toast.makeText(getActivity(), "ţ֣‹ͼ1", 500).show();
//   break;
//  case 1:
//   Toast.makeText(getActivity(), "ţ֣‹ͼ2", 500).show();
//   break;
//  }
  super.onListItemClick(l, v, position, id);
 }
//
 // ˊƤǷ
 class MyAdapter extends BaseAdapter {

  
   public MyAdapter(Context context){ 
          super(); 
          mInflater = (LayoutInflater) context 
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      } 

  @Override
  public int getCount() {
   return s1.length;
  }

  @Override
  public Object getItem(int arg0) {
   return arg0;
  }

  @Override
  public long getItemId(int arg0) {
   return arg0;
  }

  @Override
  public View getView(int arg0, View arg1, ViewGroup arg2) {
   HolderView holder=null;
   if(arg1==null||arg1.getTag()==null){
    arg1 = mInflater.inflate(R.layout.demo1, null);
    holder = new HolderView(arg1);
    arg1.setTag(holder);
   }else{
    holder=(HolderView) arg1.getTag();
   }
   
   holder.im.setImageResource(i[arg0]);
   holder.tv1.setText(s1[arg0].toString());
   holder.tv2.setText(s2[arg0].toString());
   
   
   return arg1;
  }
  class HolderView{
   ImageView im;
   TextView tv1,tv2;
   public HolderView(View v){
    im=(ImageView) v.findViewById(R.id.iv_people);
    tv1=(TextView) v.findViewById(R.id.tv_people);
    tv2=(TextView) v.findViewById(R.id.tv_foodname);
   }
  }

 }
}

Fragment2.java:

package com.example.fragment;

import android.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class Fragment2 extends ListFragment {

 LayoutInflater mInflater = null;
 String[] s1 = { "店1", "店2", "店3", "店4", "店5", "店6", "店7", "店8", "店9", "店10" };
 String[] s2 = { "人物1", "人物2", "人物3", "人物4", "人物5", "人物6", "人物7", "人物8",
   "人物9", "人物10" };
 String[] s3 = { "这是店1", "这是店2", "这是店3", "这是店4", "这是店5", "这是店6", "这是店7",
   "这是店8", "这是店9", "这是店10" };

 int[] i = { R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher };
 MyAdapter adapter = null;

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  View view = inflater.inflate(R.layout.fragment2, null);

  adapter = new MyAdapter();
  setListAdapter(adapter);
  return view;
 }

 class MyAdapter extends BaseAdapter {

  @Override
  public int getCount() {
   // TODO 自动生成的方法存根
   return s1.length;
  }

  @Override
  public Object getItem(int arg0) {
   // TODO 自动生成的方法存根
   return arg0;
  }

  @Override
  public long getItemId(int arg0) {
   // TODO 自动生成的方法存根
   return arg0;
  }

  @Override
  public View getView(int arg0, View arg1, ViewGroup arg2) {
   HolderView holder = null;
   if (arg1 == null || arg1.getTag() == null) {
    arg1 = LayoutInflater.from(getActivity()).inflate(
      R.layout.demo2, null);
    holder = new HolderView(arg1);
    arg1.setTag(holder);
   } else {
    holder = (HolderView) arg1.getTag();
   }
   holder.people.setImageResource(i[arg0]);
   holder.photo.setImageResource(i[arg0]);
   holder.tv_foodname.setText("【" + "小店" + "】" + s1[arg0].toString());
   holder.tv_info.setText(s3[arg0].toString());
   holder.tv_people.setText(s2[arg0].toString());
   holder.tv_photo.setText(s1[arg0].toString());

   return arg1;
  }

  class HolderView {
   ImageView people, photo;
   TextView tv_people, tv_photo, tv_foodname, tv_info;

   public HolderView(View v) {
    people = (ImageView) v.findViewById(R.id.image_people);
    photo = (ImageView) v.findViewById(R.id.image_photo);
    tv_foodname = (TextView) v.findViewById(R.id.tv_foodname);
    tv_photo = (TextView) v.findViewById(R.id.tv_photoname);
    tv_people = (TextView) v.findViewById(R.id.tv_peoplename);
    tv_info = (TextView) v.findViewById(R.id.tv_foodinfo);
   }

  }

 }
}

Fragment3.java:

package com.example.fragment;

import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class Fragment3  extends Fragment {
 private Spinner  city;
 TextView tv;

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {

  View v=inflater.inflate(R.layout.fragment3, container, false);
  city=(Spinner)v.findViewById(R.id.city);
  tv=(TextView) v.findViewById(R.id.tv_spinner);
  
  ArrayAdapter<CharSequence> adapter =  ArrayAdapter.createFromResource(getActivity(),
  R.array.city, android.R.layout.simple_spinner_item);
  
  adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
  
  city.setAdapter(adapter); 
  city.setOnItemSelectedListener(listener);     
  return v;
 }
 
 OnItemSelectedListener listener =new OnItemSelectedListener() {

  @Override
  public void onItemSelected(AdapterView<?> parent, View view,
    int position, long id) {
   Spinner spinner = (Spinner)parent;
   String pro = spinner.getSelectedItem().toString();
   
   if(pro.equals("武汉"))
   {
//    System.out.println("你点了武汉");
    tv.setText("你点了武汉");
   }
   else if(pro.equals("南阳"))
   {
//    System.out.println("你点了南阳");
    tv.setText("你点了南阳"); 
   }
   if(pro.equals("郑州"))
   {
//    System.out.println("你点了郑州");
    tv.setText("你点了郑州");
   }
   else if(pro.equals("杭州"))
   {
//    System.out.println("你点了杭州");
    tv.setText("你点了杭州");    
   }
   }
   
  

  @Override
  public void onNothingSelected(AdapterView<?> arg0) {
   // TODO 自动生成的方法存根
  }
 };
}

Fragment4.java:

package com.example.fragment;

import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class Fragment4 extends Fragment implements OnKeyListener{
 WebView webView;

 @SuppressLint("SetJavaScriptEnabled")
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  
  View v = inflater.inflate(R.layout.fragment4, container, false);
  webView = (WebView) v.findViewById(R.id.webView1);
  webView.getSettings().setJavaScriptEnabled(true);

  webView.loadUrl("http://www.mabaoo.com/modoer_qj/item.php?act=mobile&do=category");

  // 为了避免弹出系统默认的Browser,并且为了能够继续在WebView中浏览,要用到shouldOverrideUrlLoading方法
  webView.setWebViewClient(new MyWebViewClient());
  
  return v;
 }

 class MyWebViewClient extends WebViewClient {
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
   view.loadUrl(url);
   return true;
  }
 }

 @Override
 public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
  if(arg1==KeyEvent.KEYCODE_BACK&&webView.canGoBack()){
   webView.goBack();
   return true;
  }
  return true;
 }
}

© 著作权归作者所有

粉丝 1
博文 130
码字总数 120077
作品 0
虹口
私信 提问
QQ HD 界面实现 :Fragment 状态保存,如何实现切换回来仍是切换前的状态

在做一个类似PAD版的QQ的界面效果,左侧是一个Fragment,显示功能的图标,右侧显示各个图标对应的功能页,也是一个Fragment,右侧的Fragment布局是FrameLayout。现在的情况是:点击第一个图片...

阿顺顺
2013/03/25
5.8K
3
Fragment面试你所需知道的一切

1. 什么是Fragment: Fragment,俗称碎片,自Android 3.0开始被引进并大量使用。作为Activity界面的一部分,Fragment的存在必须依附于Activity,并且与Activity一样,拥有自己的生命周期,同...

浮生若梦zp
2017/12/01
0
0
Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版

描述: 之前有做过一个记账本APP,拿来练手的,做的很简单,是用Eclipse开发的; 最近想把这个APP重新完善一下,添加了一些新的功能,并选用Android Studio来开发; APP已经完善了一部分,现...

AnneHan
2018/09/25
0
0
Android开发总结之Fragment

1 Fragment是什么? 碎片,我的理解就是一个具有生命周期的容器控件,只不过Fragment是寄生在Activity上的,是由Activity来管理,而不是像Activity一样由系统来管理的。所以用法上Fragment比...

newtrek
03/07
0
0
Fragment的管理

我在Layout.xml文件中定义一个FrameLayout,用来动态加载Fragment。 我的目的其实就是想实现类似于QQ那样的标签管理界面。 我在Activity的onCreate方法中添加第一块碎片: 然后在RadioGroup的...

lwm1368
2014/12/31
171
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部