版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么在Android中使用fragment实现一个左侧导航
这篇文章将为大家详细讲解有关怎么在Android中使用fragment实现一个左侧导航,文章内容质量较高,因此在下分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MainActivity.javapublic
class
MainActivity
extends
FragmentActivity
{
//
private
Handler
handler;
private
ViewPager
fragmentViewPager;
private
ListView
leftListView;
private
List<Fragment>
fragmentlist;
private
Fragment1
fragment1;
private
Fragment2
fragment2;
private
ArrayList<String>
leftlist
=
new
ArrayList<String>();//
left
list
private
ListAdapter
listAdapter
=
null;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
//
TODO
Auto-generated
method
stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentViewPager
=
(ViewPager)
findViewById(R.id.fragmentViewPager);
leftListView
=
(ListView)
findViewById(R.id.leftListView);
initDatas();//
left初始化。
initDatasViewPager();
//
aTextViewCallBack
back
=
(aTextViewCallBack)
//
findViewById(R.id.aTextViewCallBack);
//
back.setCalBack(new
calBack()
{
//
@Override
//
public
void
onclick()
{
//
//
TODO
Auto-generated
method
stub
//
Toast.makeText(MainActivity.this,
"这是回调的点击事件哦~",
//
Toast.LENGTH_LONG).show();
//
}
//
});
//
//
new
Thread(new
Runnable()
{
//
//
@Override
//
public
void
run()
{
//
//
TODO
Auto-generated
method
stub
//
String
str
=
"/";
//
String
st
=
getHtmlByURL.getHtmlByURL(str);
//
Message
msg
=
handler.obtainMessage(0,st);
//
handler.sendMessage(msg);
//
}
//
}).start();
//
handler
=
new
Handler()
{
//
public
void
handleMessage(Message
msg)
{
//
super.handleMessage(msg);
//
String
x
=
msg.obj.toString();
//
Log.i("GEtHtml",
x);
//
};
//
};
}
public
void
initDatas()
{
for
(int
i
=
0;
i
<
5;
i++)
{
leftlist.add("第"
+
i
+
"个");
Log.i("65",
leftlist.get(i).toString());
}
ArrayList<ButtonView>
buttonListView
=
new
ArrayList<ButtonView>();
ButtonView
a
=
new
ButtonView(R.string.pay_name_weixin);
buttonListView.add(a);
ButtonView
b
=
new
ButtonView(R.string.pay_name_alipay);
buttonListView.add(b);
listAdapter
=
new
ListAdapter(buttonListView);
leftListView.setAdapter(listAdapter);
leftListView.setDividerHeight(0);
//
listview点击事件
leftListView.setOnItemClickListener(new
OnItemClickListener()
{
@Override
public
void
onItemClick(AdapterView<?>
parent,
View
view,
int
position,
long
id)
{
Log.e("tag",
Integer.toString(position));
//
TODO
Auto-generated
method
stub
listAdapter.setSelectedPosition(position);
listAdapter.notifyDataSetInvalidated();
if
(position
%
2
==
1)
{
fragmentViewPager.setCurrentItem(1);
}else{
fragmentViewPager.setCurrentItem(0);
}
}
});
}
public
void
initDatasViewPager()
{
fragmentlist
=
new
ArrayList<Fragment>();
fragment1
=
new
Fragment1();//
fragment2
=
new
Fragment2();//
fragmentlist.add(fragment1);
fragmentlist.add(fragment2);
fragmentViewPager.setAdapter(new
FragmentAdapter(
getSupportFragmentManager(),
fragmentlist,
this));
fragmentViewPager.setOnPageChangeListener(new
MyOnPageChangeListener());
}
//
set
OnPageChangeListener
in
inner
class
class
MyOnPageChangeListener
implements
OnPageChangeListener
{
@Override
public
void
onPageScrollStateChanged(int
arg0)
{
//
TODO
Auto-generated
method
stub
}
@Override
public
void
onPageScrolled(int
arg0,
float
arg1,
int
arg2)
{
//
TODO
Auto-generated
method
stub
}
/**
*
当点击不同id的ViewPage的时候才触发
*
*/
@Override
public
void
onPageSelected(int
arg0)
{
Log.e("tag1",
Integer.toString(arg0));
switch
(arg0)
{
case
0:
break;
case
1:
break;
case
2:
break;
}
}
}
public
class
ListAdapter
extends
BaseAdapter
{
ArrayList<ButtonView>
arrayList
=
null;
LayoutInflater
inflater;
View
view;
ButtonLayoutHolder
buttonLayoutHolder;
LinearLayout
buttonLayout
=
null;
TextView
buttonText
=
null;
private
int
selectedPosition
=
-1;//
选中的位置
public
ListAdapter(ArrayList<ButtonView>
buttonListView)
{
//
TODO
Auto-generated
constructor
stub
arrayList
=
buttonListView;
}
@Override
public
int
getCount()
{
//
TODO
Auto-generated
method
stub
return
arrayList.size();
}
@Override
public
Object
getItem(int
position)
{
//
TODO
Auto-generated
method
stub
return
arrayList.get(position);
}
@Override
public
long
getItemId(int
position)
{
//
TODO
Auto-generated
method
stub
return
position;
}
public
void
setSelectedPosition(int
position)
{
selectedPosition
=
position;
}
@Override
public
View
getView(int
position,
View
convertView,
ViewGroup
parent)
{
//
TODO
Auto-generated
method
stub
inflater
=
(LayoutInflater)
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view
=
inflater.inflate(R.layout.button_layout,
null,
false);
buttonLayoutHolder
=
(ButtonLayoutHolder)
view.getTag();
if
(buttonLayoutHolder
==
null)
{
buttonLayoutHolder
=
new
ButtonLayoutHolder();
buttonLayoutHolder.buttonLayout
=
(LinearLayout)
view
.findViewById(R.id.LinearLayoutButton);
buttonLayoutHolder.textView
=
(TextView)
view
.findViewById(R.id.TextViewButton);
view.setTag(buttonLayoutHolder);
}
buttonLayout
=
buttonLayoutHolder.buttonLayout;
buttonText
=
buttonLayoutHolder.textView;
if
(selectedPosition
==
position)
{
buttonText.setSelected(true);
buttonText.setPressed(true);
buttonLayout.setBackgroundColor(Color.parseColor("#e4e8e9"));
buttonText.setTextColor(Color.BLUE);
}
else
{
buttonText.setSelected(false);
buttonText.setPressed(false);
buttonLayout.setBackgroundColor(Color.parseColor("#2f4471"));
buttonText.setTextColor(Color.WHITE);
}
buttonText.setHeight(40);
buttonText.setText(arrayList.get(position).textViewId);
return
view;
}
};
}
class
ButtonView
{
int
textViewId;
ButtonView(int
tId)
{
textViewId
=
tId;
}
}
class
ButtonLayoutHolder
{
LinearLayout
buttonLayout;
TextView
textView;
}
FragmentAdapter.java
[java]
view
plain
copy
public
class
FragmentAdapter
extends
FragmentPagerAdapter{
private
List<Fragment>
listmVp;
private
Context
context;
public
FragmentAdapter(FragmentManager
fm,
List<Fragment>
listmVp,Context
context)
{
super(fm);
this.listmVp
=
listmVp;
this.context
=
context;
}
@Override
public
int
getCount()
{
//
TODO
Auto-generated
method
stub
return
listmVp.size();
}
@Override
public
Fragment
getItem(i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有关班主任先进事迹材料范文(6篇)
- 甲状腺亢进的护理
- 哈姆雷特读后感五篇
- 关于立春节气的特点是什么
- 劳动人事主管岗位说明书
- 施工进度计划及工期保证措施
- 药房夏季促销方案策划书(2篇)
- 加油站冬季防火方案(2篇)
- 设备应急方案及措施(2篇)
- 2024年四月高三数学每周好题精(第一周)含答案
- 2021年民法典知识竞赛题库及答案
- 2021年江苏省普通高中通用技术学业水平考试要求、题型示例清晰版有答案
- 山东高速《道路清障操作规程》考试题库(含答案)
- 认证认可、认证机构管理办法、质量管理体系认证规则试卷
- 河南省洛阳市2021—2022学年七年级下学期期末考试数学试卷(图片版无答案)
- 证据清单(表格)
- DB∕T29-191-2021 天津市地基土层序划分技术规程
- 病理学 血液循环障碍
- 方言对学生英语语音的影响
- 一年级20以内加减法口算题(精选1000道)
- 科技查新合同
评论
0/150
提交评论