问题描述
- 求大神帮助,使用Bmob服务器,获取数据解析数据???我还使用异步加载
-
//我建立了Bean,里面有一个ImageView,两个TextView,
//ImageView id=imgView;
//TextView id=tittle;
//TextView id=content;
//BaseAdapter在最下面列出来;
//ListView布局是activity_main;
//item布局是item_layout;
我都是按照视频写的,基础差,请见谅package com.bmoblist; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONObject; import org.json.JSONStringer; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.widget.BaseAdapter; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.Toast; import cn.bmob.v3.Bmob; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.FindListener; import cn.volley.toolbox.JsonObjectRequest; public class MainActivity extends Activity { private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化 Bmob SDK // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID Bmob.initialize(this, "这里是就不透露了"); ZhinengBean zhinengBean = new ZhinengBean(); ListView listView = (ListView)findViewById(R.layout.activity_main); } //这一步完全不知道怎么弄 private List<ZhinengBean> getJsonData(){ //bmobString不知道写啥 List<ZhinengBean> zhinengBeanList = new ArrayList<>(); String jsonString = readStream(ZhinengBean.openStream()); return null; } private String readStream(InputStream is){ InputStreamReader isr; String result = ""; try { String line =""; isr = new InputStreamReader(is,"utf-8"); BufferedReader br = new BufferedReader(isr); while ((line=br.readLine()) != null){ result += line; } } catch (UnsupportedEncodingException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return result; } class NewsAsyncTask extends AsyncTask<String,Void,List<ZhinengBean>>{ @Override protected List<ZhinengBean> doInBackground(String... params) { // TODO 自动生成的方法存根 return getJsonData(params[0]); //不知道怎么写 } } }
package com.bmoblist; import java.util.List; import android.content.Context; import android.media.Image; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class MyAdapter extends BaseAdapter { //通过构造方法,将数据源和适配器绑定在一起》》》》 private List<ZhinengBean> mList; private LayoutInflater mInflater; public MyAdapter (Context context,List<ZhinengBean> list){ mList = list; mInflater = LayoutInflater.from(context); } //》》》》》》》 //表示显示多少条数据 @Override public int getCount() { // TODO 自动生成的方法存根 return mList.size(); } @Override public Object getItem(int position) { // TODO 自动生成的方法存根 return mList.get(position); } @Override public long getItemId(int position) { // TODO 自动生成的方法存根 return position; } @Override public View getView(int position, View converView, ViewGroup parent) { // TODO 自动生成的方法存根 ViewHolder viewHolder; if(converView == null){ viewHolder = new ViewHolder(); converView = mInflater.inflate(R.layout.iten_layout,null); viewHolder.znImage = (ImageView) converView.findViewById(R.id.tv_icon); viewHolder.znTittle = (TextView) converView.findViewById(R.id.tv_tittle); viewHolder.znTittle2 = (TextView) converView.findViewById(R.id.tv_content); converView.setTag(viewHolder); }else{ viewHolder = (ViewHolder) converView.getTag(); } viewHolder.znImage.setImageResource(R.id.tv_icon); viewHolder.znTittle.setText(mList.get(position).getZntittle()); viewHolder.znTittle2.setText(mList.get(position).getZntittle2()); return converView; } class ViewHolder { public ImageView znImage; public TextView znTittle; public TextView znTittle2; } }
解决方案
使用BeginExecuteReader异步加载数据
使用CursorLoader异步加载数据
使用CursorLoader异步加载数据
解决方案二:
Bmob获取数据有自己的api啊,可以查看api方法。关于异步请求,如果bmob API里,获取数据的方法就使用了异步回调,就没必要自己写异步方法了。
解决方案三:
它应该返回给你的是json数据。使用json解析api解析就行了、
解决方案四:
这个问题建议去Bmob的问答社区提问
时间: 2024-10-03 20:09:51