<RadioGroup
android:id="@+id/rg"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:textColor="#0f0"
android:text="附近影院" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="全部影院" />
</RadioGroup>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
//继承v4包
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioGroup;
import com.bw.qgs.week201.fragment.FragMent1;
import com.bw.qgs.week201.fragment.FragMent2;
import java.util.ArrayList;
public class MainActivity extends FragmentActivity {
private ViewPager pager;
private RadioGroup rg;
private ArrayList<Fragment> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
pager = findViewById(R.id.pager);
rg = findViewById(R.id.rg);
//Fragment集合
list = new ArrayList<Fragment>();
//添加FragMent
list.add(new FragMent1());
list.add(new FragMent2());
//viewpager改变监听
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
//找到索引
rg.check(rg.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
//按钮点击改变事件
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.radioButton1:
pager.setCurrentItem(0);
break;
case R.id.radioButton2:
pager.setCurrentItem(1);
break;
}
}
});
//适配器
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
}
}
<?xml version="1.0" encoding="utf-8"?><com.bawei.xlistviewlibrary.XListView
android:id="@+id/xlistview1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
/>
工具类
import android.os.Handler;
import android.os.Message;
import com.google.common.io.CharStreams;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class Gong {
public Gong(){}
public Gong get(final String path){
new Thread(){
@Override
public void run() {
super.run();
try {
URL url = new URL(path);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(3000);
int responseCode = urlConnection.getResponseCode();
if(responseCode == 200){
InputStream inputStream = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
String s = CharStreams.toString(reader);
Message message = Message.obtain();
message.obj = s;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
return this;
}
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String data = (String) msg.obj;
gong.getName(data);
}
};
private HttpGong gong;
public void getGong(HttpGong gong){
this.gong = gong;
}
public interface HttpGong{
void getName(String name);
}
}
界面1
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bawei.xlistviewlibrary.XListView;
import com.bw.qgs.week201.Gong;
import com.bw.qgs.week201.R;
import com.bw.qgs.week201.adapter.ItemAdapter;
import com.bw.qgs.week201.bean.User;
import com.google.gson.Gson;
import java.util.ArrayList;
public class FragMent1 extends Fragment implements XListView.IXListViewListener {
private int cc = 10;
private String path = "http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count=";
private XListView xlistview1;
private ItemAdapter adapter;
private ArrayList<User.ResultBean> list = new ArrayList<User.ResultBean>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.item1,container,false);
//找控件
xlistview1 = view.findViewById(R.id.xlistview1);
//调用方法
getInit();
//打开
xlistview1.setPullLoadEnable(true);
xlistview1.setPullRefreshEnable(true);
//设置监听
xlistview1.setXListViewListener(this);
return view;
}
private void getInit() {
//封装工具类
Gong gong = new Gong();
gong.get(path+cc).getGong(new Gong.HttpGong() {
@Override
public void getName(String name) {
Gson gson = new Gson();
User user = gson.fromJson(name, User.class);
//向集合添加
list.addAll(user.getResult());
//适配器
adapter = new ItemAdapter(getContext(),list);
xlistview1.setAdapter(adapter);
}
});
}
@Override
public void onRefresh() {
//下拉刷新
handler.postDelayed(new Runnable() {
@Override
public void run() {
doHttp(10);
//handler已经做了适配器的刷新
// adapter.notifyDataSetChanged();
handler.sendEmptyMessage(0);
}
//时间
},3000);
}
@Override
public void onLoadMore() {
//上拉加载
handler.postDelayed(new Runnable() {
@Override
public void run() {
//自加
cc++;
doHttp(cc);
//handler已经做了适配器的刷新
//adapter.notifyDataSetChanged();
handler.sendEmptyMessage(0);
}
//时间
},3000);
}
private void doHttp(int cc){
new Gong().get(path+cc).getGong(new Gong.HttpGong() {
@Override
public void getName(String name) {
Gson gson = new Gson();
User user = gson.fromJson(name, User.class);
list.addAll(user.getResult());
}
});
}
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
adapter.notifyDataSetChanged();
close();
}
private void close() {
//停止刷新
xlistview1.stopLoadMore();
xlistview1.stopRefresh();
//设置自定义时间
long l = System.currentTimeMillis();
Date date=new Date(l);
SimpleDateFormat format=new SimpleDateFormat("HH:mm");
xlistview1.setRefreshTime(format.format(date));
}
};
}
界面2同理
依赖
compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
compile ‘de.hdodenhof:circleimageview:2.0.0’
XListView展示/上拉加载/下拉刷新 数据改变