activity_main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bawei.lss_zonghe.MainActivity"
android:orientation="vertical"
>
//用来放置轮播图片的控件
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="wrap_content"
android:layout_height="500dp"
/>
//用来放置圆点控件的布局
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:gravity="center"
android:id="@+id/ll"
android:orientation="horizontal"></LinearLayout>
//点击进入主页的控件
<Button
android:id="@+id/but"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击进入主页"
/>
</LinearLayout>
=======================================
item_test
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
//放置点的控件
<View
android:id="@+id/dot"
android:layout_width="8dp"
android:layout_height="8dp"
android:layout_margin="3dp"
android:background="@drawable/dot_normal"/>
</LinearLayout>
=======================================
MainActivity
public class MainActivity extends AppCompatActivity {
private Button but;
private ViewPager vp;
private LinearLayout ll;
//轮播页数的变量
private int i;
//业
private int curren = 0;
//点
private int old_dot = 0;
//点的集合
private ArrayList<View> dolist = new ArrayList<View>();
//接受
Handler handler = new Handler() {
public void handleMessage(Message msg) {
//页
vp.setCurrentItem(msg.what);
//点 dolist.get(old_dot).setBackgroundResource(R.drawable.dot_normal); dolist.get(msg.what%dolist.size()).setBackgroundResource(R.drawable.dot_focused);
old_dot=msg.what%dolist.size();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
but = (Button) findViewById(R.id.but);
vp = (ViewPager) findViewById(R.id.vp);
ll = (LinearLayout) findViewById(R.id.ll);
//开始解析获取轮播所需要的图片()
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
String s=params[0];
String str=new MyNet().getJsonByUrlConnection(s);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
One one = new Gson().fromJson(s, One.class);
ArrayList<Newslist> newslist = one.getNewslist();
//开始添加适配器PagerAdapter
Myadapter myadapter = new Myadapter(MainActivity.this, newslist);
vp.setAdapter(myadapter);
//页
vp.setCurrentItem(1000 * newslist.size());
//点
for (int j = 0; newslist.size() > j; j++) {
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_test, null);
View dot = view.findViewById(R.id.dot);
dolist.add(dot);
ll.addView(view);
}
//聚焦 dolist.get(0).setBackgroundResource(R.drawable.dot_focused);
//页
i = vp.getCurrentItem();
//线程设置自动无线轮播
new Thread() {
public void run() {
while (true) {
try {
sleep(2000);
Message obtain = Message.obtain();
obtain.what = i++;
handler.sendMessage(obtain);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
}.execute(MyURL.JSONURL);
//点击进入主页面
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转
Intent intent = new Intent(MainActivity.this,TowActivity.class);
startActivity(intent);
}
});
}
}
===============================
MyURL
public class MyURL {
public static final String
JSONURL="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10 ";
}
=======================================
//封装对象哦
=======================================
MyNet
public class MyNet {
public String getJsonByUrlConnection(String jsonrul){
String str="";
URL url;
HttpURLConnection httpURLConnection;
InputStream inputStream;
try {
url = new URL(jsonrul);
httpURLConnection= (HttpURLConnection) url.openConnection();
int responseCode = httpURLConnection.getResponseCode();
if(responseCode==200){
inputStream = httpURLConnection.getInputStream();
byte[] bytes = new byte[1024];
int len=0;
while((len=inputStream.read(bytes))!=-1){
str+=new String(bytes,0,len);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
}
=======================================
MyAppliction
public class MyAppliction extends Application{
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(configuration);
}
}
=======================================
网络权限哦
===============================
Myadapter
public class Myadapter extends PagerAdapter{
private Context context;
private ArrayList<Newslist> newslist;
public Myadapter(Context context, ArrayList<Newslist> newslists) {
this.context = context;
this.newslist = newslists;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
ImageLoader.getInstance().displayImage(newslist.get(position%newslist.size()).getPicUrl(),imageView);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//注意!!!
container.removeView((View) object); }
}
===============================
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_tow"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bawei.lss_zonghe.TowActivity"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="@color/red"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/red"
app:tabTextColor="@color/black"/>
<android.support.v4.view.ViewPager
android:id="@+id/vp_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<ListView
android:id="@+id/lv"
android:layout_width="240sp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="#f00"
android:dividerHeight="1dp"
android:background="#fff"
>
</ListView>
</android.support.v4.widget.DrawerLayout>
===============================
TowActivity
public class TowActivity extends AppCompatActivity {
ArrayList<String> list;
ListView lv;
private DrawerLayout dl;
private TabLayout mTabLayout;
private ViewPager mViewPager;
private String[] channels = {"推荐","热点","体育","娱乐","社会","汽车","教育","财经","科技","游戏"};
private String[] urlS = {
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
"https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10",
};
private LayoutInflater mInflater;
private ArrayList<String> mTitleList = new ArrayList<>();//页卡标题集合
private ArrayList<ChannelFragment> mViewList = new ArrayList<>();//页卡视图集合
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tow);
lv = (ListView) findViewById(R.id.lv);
list=new ArrayList<>();
for(int i=0;i<10;i++){
list.add("条目"+i);
}
Myadapter3 myadapter3 = new Myadapter3(TowActivity.this,list);
lv.setAdapter(myadapter3);
mViewPager = (ViewPager) findViewById(R.id.vp_view);
mTabLayout = (TabLayout) findViewById(R.id.tabs);
for(int i=0;i<channels.length;i++){
ChannelFragment fragment = new ChannelFragment();
Bundle b = new Bundle();
b.putString("url", urlS[i]);
fragment.setArguments(b);
//收集fragment
mViewList.add(fragment);
//给tablayout添加tab选项卡
mTabLayout.addTab(mTabLayout.newTab().setText(channels[i]));//添加tab选项卡
}
FragmentManager fm = getSupportFragmentManager();
MyFragmentPagerAdapter mAdapter = new MyFragmentPagerAdapter(fm, mViewList);
mViewPager.setAdapter(mAdapter);//给ViewPager设置适配器
mTabLayout.setupWithViewPager(mViewPager);//将TabLayout和ViewPager关联起来。
mTabLayout.setTabsFromPagerAdapter(mAdapter);//给Tabs设置适配器
}
class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private ArrayList<ChannelFragment> mViewList;
public MyFragmentPagerAdapter(FragmentManager fm, ArrayList<ChannelFragment> mViewList) {
super(fm);
this.mViewList = mViewList;
}
@Override
public Fragment getItem(int position) {
return mViewList.get(position);
}
@Override
public int getCount() {
return mViewList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return channels[position];//页卡标题
}
}
}
===============================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.handmark.pulltorefresh.library.PullToRefreshListView
xmlns:ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/pull_refresh_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#000000"
android:divider="#19000000"
android:dividerHeight="4dp"
android:fadingEdge="none"
android:fastScrollEnabled="false"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:smoothScrollbar="true"
ptr:ptrAnimationStyle="rotate"
ptr:ptrHeaderTextColor="#ffffff"
ptr:ptrHeaderSubTextColor="#00ffff"
ptr:ptrHeaderBackground="@null"
ptr:ptrDrawable="@mipmap/ic_launcher">
</com.handmark.pulltorefresh.library.PullToRefreshListView>
</LinearLayout>
===============================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ImageView
android:id="@+id/tu"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
===============================
public class ChannelFragment extends Fragment{
private PullToRefreshListView listView;
private String news_url;
private ArrayList<Newslist> newslist;
One one;
Myadapters myadapters;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
news_url = (String) bundle.get("url");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.item_test2, null);
listView= (PullToRefreshListView) view.findViewById(R.id.pull_refresh_list);
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
String s=params[0];
String str=new MyNet().getJsonByUrlConnection(s);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
one = new Gson().fromJson(s, One.class);
newslist = one.getNewslist();
for(int i=0;i<newslist.size();i++){
MySql mysql = new MySql(getActivity());
mysql.add(newslist.get(i).getPicUrl(),newslist.get(i).getTitle());
}
myadapters = new Myadapters(getActivity(),newslist);
listView.setAdapter(myadapters);
}
}.execute(news_url);
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
//当下拉刷新,进入此方法
Toast.makeText(getActivity(), "下拉刷新", Toast.LENGTH_SHORT).show();
//加载出的新数据,刷新显示
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
String s=params[0];
String str=new MyNet().getJsonByUrlConnection(s);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
one = new Gson().fromJson(s, One.class);
newslist = one.getNewslist();
myadapters = new Myadapters(getActivity(),newslist);
listView.setAdapter(myadapters);
listView.onRefreshComplete();
}
}.execute(news_url);
}
});
listView.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
Toast.makeText(getActivity(),"上拉显示出listview的最后一行",Toast.LENGTH_SHORT).show();
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
String s=params[0];
String str=new MyNet().getJsonByUrlConnection(s);
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//解析json
one = new Gson().fromJson(s, One.class);
newslist.addAll(one.getNewslist());
myadapters.notifyDataSetChanged();
listView.onRefreshComplete();
}
}.execute(news_url);
}
});
return view;
}
}
===============================
public class Myadapters extends BaseAdapter{
private Context context;
private ArrayList<Newslist> newslist;
public Myadapters(Context context, ArrayList<Newslist> newslists) {
this.context = context;
this.newslist = newslists;
}
@Override
public int getCount() {
return newslist.size();
}
@Override
public Object getItem(int position) {
return newslist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder=null;
if(convertView==null){
convertView=View.inflate(context, R.layout.lv_items, null);
holder=new ViewHolder();
holder.tv=(TextView) convertView.findViewById(R.id.tv);
holder.tu=(ImageView) convertView.findViewById(R.id.tu);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
String value = newslist.get(position).getTitle();
holder.tv.setText(value);
ImageLoader.getInstance().displayImage(newslist.get(position).getPicUrl(),holder.tu);
return convertView;
}
class ViewHolder{
ImageView tu;
TextView tv;
}
}
===============================
欢迎使用CSDN-markdown编辑器
最新推荐文章于 2024-09-02 18:19:21 发布