【发布时间】:2017-08-03 18:31:42
【问题描述】:
这里是 MainActivity.class 问题在哪里没有显示我的数据?** 在 logcat 中没有错误或其他东西。我第一次尝试这个。但我必须知道问题所在。here the image of emultor。我在 Onresponse 方法中使用了进度条。它不是隐形的。因为我的响应不起作用。我该如何解决这个问题?
public class MainActivity extends AppCompatActivity {
View view;
ArrayList<user> list=new ArrayList<>();
RecyclerView recyclerView;
RecyclerViewCardViewAdapter recycleExpert_adapter;
// private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyclerView1);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setHasFixedSize(true);
// list= new ArrayList<user>();
new AsynDemo().execute();
// setSupportActionBar(toolbar);
// client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
public class AsynDemo extends AsyncTask<String, Integer, String> {
// AlertDialog alertdialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
// alertdialog.new SpotsDialog(MainActivity.this, "Please Wait", R.style.Custom);
// alertdialog.show();
}
@Override
protected String doInBackground(String... params) {
String response = "";
URL url = null;
try {
url = new URL("http://127.0.0.1:8080/app/con_get_data.php");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setConnectTimeout(30000);
httpURLConnection.connect();
InputStream in = httpURLConnection.getInputStream();
// read response
response = readStream(in);
httpURLConnection.disconnect();
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("result");
int count = jsonArray.length();
for (int i = 0; i < count; i++) {
JSONObject jsonObject2 = jsonArray.getJSONObject(i);
String name = jsonObject2.getString("name");
String email = jsonObject2.getString("email");
list.add(new user(name, email));
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
recycleExpert_adapter = new RecyclerViewCardViewAdapter(list,MainActivity.this);
recyclerView.setAdapter(recycleExpert_adapter);
recycleExpert_adapter.notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
}
}
private String readStream(InputStream is) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
String line = "\n";
String result = "";
try {
while ((line = bufferedReader.readLine()) != null) {
result += line;
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
}
这是适配器类
public class RecyclerViewCardViewAdapter extends RecyclerView.Adapter<RecyclerViewCardViewAdapter.ViewHolder> {
Context context;
List<user> item;
public RecyclerViewCardViewAdapter(List<user> getDataAdapter, Context context){
super();
this.item = getDataAdapter;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
user getDataAdapter1 = item.get(position);
holder.Name.setText(getDataAdapter1.getName());
holder.Email.setText(getDataAdapter1.getEmail());
}
@Override
public int getItemCount() {
return item.size();
}
class ViewHolder extends RecyclerView.ViewHolder{
public TextView Name,Email;
public ViewHolder(View itemView) {
super(itemView);
Name = (TextView) itemView.findViewById(R.id.Name) ;
Email = (TextView) itemView.findViewById(R.id.email) ;
}
}
}
【问题讨论】:
-
可能是某个地方抛出了一些异常,你应该首先尝试使用 Log.e("MainActivity - RecyclerView", "
", e);而不是 e.printStacktrace() 来查看异常。看到之后,解决你的问题会更直接。 -
不要滥用文本属性。您的问题没有什么特别之处可以证明其整个文本 boldfaced...
-
我得到了 Emulator 的答案。 url = new URL("127.0.0.1:8080/app/con_get_data.php"); 改为 url = new URL("10.0.2.2:8080/app/con_get_data.php");
标签: android json android-recyclerview