效果如下:
需要导入xutils和imagerload包
compile 'org.xutils:xutils:3.5.0' compile 'com.google.code.gson:gson:2.8.1' compile'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
需要的权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>android:name=".App"
布局如下:,main_activty
<ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp" /> main2_activty<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClick" android:id="@+id/tv_text"/>item 使用相对布局
<TextView android:id="@+id/tv_title" android:layout_width="match_parent" android:layout_height="20dp" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textSize="16sp" android:textStyle="bold" /> <ImageView android:id="@+id/iv_image" android:layout_width="match_parent" android:layout_height="300dp" android:layout_below="@+id/tv_title" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="35dp" />
Class类
APP类用于xutils
public class App extends Application{ @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(BuildConfig.DEBUG); } }
Mian2Activty 类 传递接受的标题的值
public class Main2Activity extends AppCompatActivity { private TextView textView; private String jsonBean; private SharedPreferences sharedPreferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); sharedPreferences = getSharedPreferences("channel", MODE_PRIVATE); jsonBean = sharedPreferences.getString("channel", null); textView = (TextView) findViewById(R.id.tv_text); Intent intent = getIntent(); String title = intent.getStringExtra("title"); textView.setText(title); } @Override public void onBackPressed() { super.onBackPressed(); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("beans", jsonBean); editor.commit(); } }
主MainActivity
public class MainActivity extends AppCompatActivity { private ListView listView; private MyApdater mApdater; private List<User.DataBean.ComicsBean> list = new ArrayList<>(); private String url ="http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"; private Gson gson; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); x.view().inject(this); gson = new Gson(); initView(); lodaData(); } private void lodaData() { RequestParams requst = new RequestParams(url); x.http().get(requst, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { User user = gson.fromJson(result, User.class); list.addAll(user.getData().getComics()); mApdater.notifyDataSetChanged(); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } private void initView() { listView = (ListView) findViewById(R.id.listview); mApdater = new MyApdater(list, this); listView.setAdapter(mApdater); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { } }); } /** * 适配器显示数据 */ class MyApdater extends BaseAdapter { private List<User.DataBean.ComicsBean> list; private Context context; private ImageLoader imageLoader; private DisplayImageOptions opdation; //构造方法 public MyApdater(List<User.DataBean.ComicsBean> list, Context context) { this.list = list; this.context = context; //初始化imageloader ImageLoaderConfiguration config = ImageLoaderConfiguration.createDefault(context); imageLoader = ImageLoader.getInstance(); imageLoader.init(config); opdation = new DisplayImageOptions.Builder() //加载过程中显示图片 .showImageOnLoading(R.mipmap.ic_launcher) //图片加载失败显示图片 .showImageOnFail(R.mipmap.ic_launcher) .build(); } @Override public int getCount() { return list == null ? 0 : list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView == null) { convertView = View.inflate(context, R.layout.item, null); viewHolder = new ViewHolder(); viewHolder.title = (TextView) convertView.findViewById(R.id.tv_title); viewHolder.image = (ImageView) convertView.findViewById(R.id.iv_image); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } User.DataBean.ComicsBean user = list.get(position); viewHolder.title.setText(user.getLabel_text()); //点击跳转传值 viewHolder.title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent title = new Intent(context, Main2Activity.class); title.putExtra("title", list.get(position).getLabel_text()); context.startActivity(title); } }); imageLoader.displayImage(user.getCover_image_url(), viewHolder.image, opdation); return convertView; } class ViewHolder { ImageView image; TextView title; } } }
获取的接口类<