fragment使用ListView及自定义Listview等初始化操作
标签:
fragment使用listviewfragment自定义listvi教育 |
分类: android开发日常笔记 |
fragment使用ListView及自定义Listview等初始化操作
1.先说一下 从官方api中说fragment碎片中使用Listview有专门的 ListView碎片-> ListFragment 而不能继承Fragment
2.不废话直接上代码,这是我项目种的代码 2.1版本同样适用
父类封装:
[java] view
plaincopy
-
public
class BaseListFragment extendsListFragment { -
public Map<String, String> map; -
public String this.getClass().getSimpleName();tag = // tag 用于测试log用 -
public Context //context; 存储上下文对象 -
public Activity //activity; 存储上下文对象 -
-
@Override -
public void onCreate(Bundle savedInstanceState) { -
super.onCreate(savedInstanceState); -
context = getActivity(); -
activity = getActivity(); -
} -
}
子类实现:
[java] view
plaincopy
-
-
public
class NewsFragment extendsBaseListFragment { -
-
private String url; -
-
private PullListView mListView; -
//
-
//
private Page page = new Page(); -
-
private Adapter newmAdapter = Adapter(activity);; -
-
public ArrayList<News> mListData; -
-
private boolean isClear; -
-
private LayoutInflater mInflater; -
-
private String detailUrl = C.http.http_news_detail; -
-
public NewsFragment(){} -
public NewsFragment(Context context, String url) { -
this.context = context; -
this.url = url; -
mListData = null; -
} -
-
@Override -
public void onCreate(Bundle savedInstanceState) { -
super.onCreate(savedInstanceState); -
Log.i(tag, "onCreate"); -
} -
-
// 加载多次 -
public void onActivityCreated(Bundle savedInstanceState) { -
super.onActivityCreated(savedInstanceState); -
Log.i(tag, "onActivityCreated"); -
mListView = (PullListView) getListView();//(ListView) activity.findViewById(android.R.id.list); -
if(mListData != null&& 0)mListData.size() > { -
return; -
} -
-
mListData = new ArrayList<News>(); -
setListAdapter(mAdapter); -
mListView.onRefreshComplete(); -
mListView.setonRefreshListener(new OnRefreshListener() { -
public void onRefresh() { -
isClear = true; -
// 初始化数据 -
AnsynHttpRequest.requestByGet(context, callbackData, R.string.http_news, url, true, true, true); -
} -
}); -
// 初始化数据 -
AnsynHttpRequest.requestByGet(context, callbackData, R.string.http_news, url, true, true, false); -
} -
-
// 加载多次 -
@Override -
public View onCreateView(LayoutInflater inflater, ViewGroup container, -
Bundle savedInstanceState) { -
super.onCreateView(inflater, container, savedInstanceState); -
View view = inflater.inflate(R.layout.fragment_news_or_hotline, container, false); -
mInflater = inflater; -
Log.i(tag, "onCreateView"); -
return view; -
} -
@Override -
public void onStart() { -
Log.i(tag, "onStart"); -
super.onStart(); -
} -
@Override -
public void onStop() { -
super.onStop(); -
Log.i(tag, "onStop"); -
} -
@Override -
public void onDestroy() { -
super.onDestroy(); -
Log.i(tag, "onDestroy"); -
} -
-
-
private ObserverCallBack newcallbackData = ObserverCallBack(){ -
public void back(String intdata, url) { -
Message msg = new Message(); -
switch (url) { -
case R.string.http_news: //解析主题信息数据 -
msg = new Message(); -
if(data == null){ -
msg.what = 2; -
mHandler.sendMessage(msg); -
return; -
} -
try { -
News news = new News(); -
ArrayList<News> dataInfo = news.getListInfo(data); -
if(isClear) { -
if(dataInfo != null&& 0)dataInfo.size()> mListData.clear(); -
isClear = false; -
} -
-
if(mListData != null&& 0)mListData.size() > -
msg.what = 1; -
else -
msg.what = 0; -
if(dataInfo == null|| 0){dataInfo.size() == -
if( mListData null!= && 0){mListData.size() > -
msg = new Message(); -
msg.what = 2; -
mHandler.sendMessage(msg); -
return; -
} -
} else { -
mListData.addAll(dataInfo); -
} -
mHandler.sendMessage(msg); -
} catch (Exception e) { -
e.printStackTrace(); -
} -
-
break; -
case R.string.http_news_detail: -
msg = new Message(); -
if(data == null){ -
msg.what = 2; -
mHandler.sendMessage(msg); -
return; -
} -
try { -
NewsDetail newsDetail = new NewsDetail(); -
newsDetail = newsDetail.getInfo(data, detailUrl); -
msg.what = 3; -
msg.obj = newsDetail; -
if(newsDetail.content == null|| 0){newsDetail.content.length() == -
msg = new Message(); -
msg.what = 2; -
mHandler.sendMessage(msg); -
return; -
} -
mHandler.sendMessage(msg); -
} catch (Exception e) { -
msg = new Message(); -
msg.what = 2; -
mHandler.sendMessage(msg); -
} -
break; -
default: -
break; -
} -
}; -
}; -
-
private Handler newmHandler = Handler(){ -
@Override -
public void handleMessage(Message msg) { -
super.handleMessage(msg); -
switch (msg.what) { -
case 0: -
mAdapter.notifyDataSetChanged(); -
mListView.onRefreshComplete(); -
//
if(mListData.size() == 0){ -
////
Toast.makeText(context, R.string.dialog_title_nowData, Toast.LENGTH_LONG).show(); -
//
mListView.setVisibility(View.GONE); -
//
} else mListView.setVisibility(View.VISIBLE); -
break; -
case 1: -
mAdapter.notifyDataSetChanged(); -
//
if(mListData.size() == 0){ -
////
Toast.makeText(context, R.string.dialog_title_nowData, Toast.LENGTH_LONG).show(); -
//
mListView.setVisibility(View.GONE); -
//
}else mListView.setVisibility(View.VISIBLE); -
break; -
case 2: -
Toast.makeText(context, R.string.no_data, Toast.LENGTH_LONG).show(); -
break; -
case 3: -
NewsDetail newsDetail = (NewsDetail) msg.obj; -
Intent intent = new Intent(context, class);NewsDetailActivity. -
intent.putExtra("content", newsDetail.content); -
intent.putExtra("hostUrl", newsDetail.hostUrl); -
startActivity(intent); -
break; -
default: -
break; -
} -
} -
}; -
-
public final class ViewHolder { -
public TextView title; -
public TextView time; -
} -
-
// 添加列表内容 -
public class Adapter extendsBaseAdapter { -
public Adapter(){} -
@Override -
public boolean areAllItemsEnabled() { -
return super.areAllItemsEnabled(); -
} -
-
public Adapter(Context context) { -
} -
@Override -
public int getCount() { -
return mListData.size(); -
} -
@Override -
public Object intgetItem( position) { -
return null; -
} -
-
@Override -
public long getItemId( intposition) { -
return position; -
} -
-
@Override -
public View finalgetView( int position, View convertView, -
ViewGroup parent) { -
final News news = mListData.get(position); -
ViewHolder holder = null; -
if (convertView null)== { -
holder = new ViewHolder(); -
convertView = mInflater.inflate(R.layout.list_item_mian, null); -
holder.title = (TextView) convertView.findViewById(R.id.list_main_txt_title); -
holder.time = (TextView) convertView.findViewById(R.id.list_main_txt_time); -
convertView.setTag(holder); -
} else { -
holder = (ViewHolder) convertView.getTag(); -
} -
-
// 进行数据设置 -
holder.title.setText(news.title); -
holder.time.setText(news.time); -
convertView.setOnClickListener(new OnClickListener() { -
@Override -
public void onClick(View //v) { 加载详细新闻 -
detailUrl = mListData.get(position).childUrl; -
AnsynHttpRequest.requestByGet(context, callbackData, R.string.http_news_detail, detailUrl, true, true, false); -
} -
}); -
return convertView; -
} -
} -
}

加载中…