一个使用友盟登录+Xutils3.0网络请求+XListView多条目加载。
MainActivity
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.example.lixin.zhoukaolx.fragment.MyFragment;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import java.util.Map;
public class MainActivity extends AppCompatActivity{
private ImageView iv;
private String[] strings;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = (TabLayout) findViewById(R.id.tablayout);
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setOffscreenPageLimit(8);
iv = (ImageView) findViewById(R.id.iv);
tabLayout.setupWithViewPager(viewPager);
strings = new String[]{"川菜","湘菜","东北菜","新疆菜","北京菜","天津菜","唐山菜","湖南菜",};
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, umAuthListener);
Toast.makeText(MainActivity.this, "点击了", Toast.LENGTH_SHORT).show();
}
});
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
MyFragment myfragment = new MyFragment();
return myfragment;
}
@Override
public int getCount() {
return strings.length;
}
@Override
public CharSequence getPageTitle(int position) {
return strings[position];
}
});
}
private UMAuthListener umAuthListener = new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
//授权开始的回调
}
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
Toast.makeText(getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
}
MyFragment
package com
.example
.lixin
.zhoukaolx
.fragment
;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.lixin.zhoukaolx.R;
import com.example.lixin.zhoukaolx.bean.MenuInfo;
import com.google.gson.Gson;
import com.limxing.xlistview.view.XListView;
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.image.ImageOptions;
import org.xutils.x;
import java.util.List;
/**
* Created by hua on 2017/8/4.
*/
public class MyFragment extends Fragment implements XListView.IXListViewListener {
private int index = 1;
private XListView xListView;
private boolean flag;
private MyBaseAdapter adapter;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.myfragment, container, false);
return inflate;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
xListView = (XListView) getView().findViewById(R.id.xlistview);
xListView.setPullLoadEnable(true);
xListView.setXListViewListener(this);
initData();
}
private void initData(){
RequestParams params=new RequestParams("http://apis.juhe.cn/cook/query.php");
params.addQueryStringParameter("key","4828e85e3b04e4b0d7ac8afab28a39cf");
params.addQueryStringParameter("menu","小鸡炖蘑菇");
params.addQueryStringParameter("pn",index+"");
params.addQueryStringParameter("rn","10");
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
System.out.println("----------------------------"+result);
Gson gson = new Gson();
MenuInfo menuInfo = gson.fromJson(result, MenuInfo.class);
List<MenuInfo.ResultBean.DataBean> data = menuInfo.getResult().getData();
System.out.println("-----------------------"+data);
if (adapter==null){
adapter = new MyBaseAdapter(data);
xListView.setAdapter(adapter);
}else{
adapter.add(data,flag);
adapter.notifyDataSetChanged();
}
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(Callback.CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
@Override
public void onRefresh() {
index++;
initData();
flag=true;
xListView.stopRefresh(true);
}
@Override
public void onLoadMore() {
index++;
initData();
flag=false;
xListView.stopLoadMore();
}
class MyBaseAdapter
extends BaseAdapter
{
private List
<MenuInfo
.ResultBean
.DataBean
> data
;
private MyBaseAdapter
(List
<MenuInfo
.ResultBean
.DataBean
> data
){
this.data
=data
;
}
public void add
(List
<MenuInfo
.ResultBean
.DataBean
> datas
,boolean flag
){
for (MenuInfo
.ResultBean
.DataBean b
:datas
) {
if (flag
){
data
.add
(0,b
);
}else{
data
.add
(b
);
}
}
}
ImageOptions imageOptions
=new ImageOptions
.Builder
()
.setLoadingDrawableId
(R
.mipmap
.ic_launcher
)
.setUseMemCache
(true)
.setSize
(200,200)
.build
();
@Override
public int getCount
() {
return data
.size
();
}
@Override
public Object getItem
(int position
) {
return data
.get
(position
);
}
@Override
public long getItemId
(int position
) {
return position
;
}
@Override
public int getViewTypeCount
() {
return 2;
}
@Override
public int getItemViewType
(int position
) {
if (position
%2==0){
return 0;
}else {
return 1;
}
}
@Override
public View getView
(int position
, View convertView
, ViewGroup parent
) {
ViewHolder holder
= null;
ViewHolder1 holder1
= null;
switch (getItemViewType
(position
)){
case 0:
if (convertView
== null){
convertView
= View
.inflate
(getActivity
(),R
.layout
.item1
,null);
holder
= new ViewHolder
();
holder
.iv
= (ImageView
) convertView
.findViewById
(R
.id
.item_iv
);
holder
.tv
= (TextView
) convertView
.findViewById
(R
.id
.item_tv
);
convertView
.setTag
(holder
);
}else {
holder
= (ViewHolder
) convertView
.getTag
();
}
holder
.tv
.setText
(data
.get
(position
).getImtro
());
x
.image
().bind
(holder
.iv
,data
.get
(position
).getAlbums
().get
(0),imageOptions
);
break;
case 1:
if (convertView
== null){
convertView
= View
.inflate
(getActivity
(),R
.layout
.item2
,null);
holder1
= new ViewHolder1
();
holder1
.iv
= (ImageView
) convertView
.findViewById
(R
.id
.item2_iv
);
holder1
.tv
= (TextView
) convertView
.findViewById
(R
.id
.item2_tv
);
convertView
.setTag
(holder1
);
}else {
holder1
= (ViewHolder1
) convertView
.getTag
();
}
holder1
.tv
.setText
(data
.get
(position
).getImtro
());
x
.image
().bind
(holder1
.iv
,data
.get
(position
).getAlbums
().get
(0),imageOptions
);
break;
}
return convertView
;
}
class ViewHolder
{
TextView tv
;
ImageView iv
;
}
class ViewHolder1
{
TextView tv
;
ImageView iv
;
}
}
}
MyApplication
package com
.example
.lixin
.zhoukaolx
;
import android.app.Application;
import com.umeng.socialize.Config;
import com.umeng.socialize.PlatformConfig;
import com.umeng.socialize.UMShareAPI;
import org.xutils.x;
/**
* Created by hua on 2017/8/4.
*/
public class MyApplication extends Application {
{
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
}
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
UMShareAPI.get(this);
Config.DEBUG = true;
}
}
AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lixin.zhoukaolx">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<application
android:name=".MyApplication"
android:allowBackup="true" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.umeng.qq.tencent.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100424468" />
</intent-filter>
</activity>
<activity
android:name="com.umeng.qq.tencent.AssistActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"/>
<meta-data
android:name="UMENG_APPKEY"
android:value="561cae6ae0f55abd990035bf" >
</meta-data>
</application>
</manifest>
转载请注明原文地址: https://www.6miu.com/read-58864.html