我想将mysql数据加载到listview中 其中包含先前存储在mysql数据库中的图像和文本视图 这是我的代码,但它在getLayoutInflater中显示错误 我怎么能这样做?
public class NewsFragment extends Fragment {
RequestQueue requestQueue;
String url = "http://giclub.esy.es/show.php";
ListView listView;
View myView;
ArrayList<NewsList> Newslistitem = new ArrayList<NewsList>();
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.newslayout,container,false);
listView = (ListView) myView.findViewById(R.id.listView);
requestQueue = Volley.newRequestQueue(this.getActivity());
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("allstudents");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject respons = jsonArray.getJSONObject(i);
String id = respons.getString("id");
String name = respons.getString("name");
String info = respons.getString("info");
String img = respons.getString("img");
Newslistitem.add(new NewsList(id,name, info, img));
}
listAllItme();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("VOLLEY", "ERROR");
}
}
);
requestQueue.add(jsonObjectRequest);
return myView;
}
public void listAllItme() {
listAdpter lA = new listAdpter(Newslistitem);
listView.setAdapter(lA);
}
/* public void onClick(View view) {
Intent intent = new Intent(this.getActivity(),NewsFragment.class);
startActivity(intent);
finish();
}*/
class listAdpter extends BaseAdapter {
ArrayList<NewsList> listA = new ArrayList<NewsList>();
public listAdpter(ArrayList<NewsList> listA) {
this.listA = listA;
}
@Override
public int getCount() {
return listA.size();
}
@Override
public Object getItem(int position) {
return listA.get(position).id;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = getLayoutInflater();
View view = layoutInflater.inflate(R.layout.news_itm, null);
//TextView id = (TextView) view.findViewById(R.id.textView_id);
TextView name = (TextView) view.findViewById(R.id.textaddress);
TextView info = (TextView) view.findViewById(R.id.text_info);
ImageView img = (ImageView) view.findViewById(R.id.newspic);
// id.setText(listA.get(position).id);
name.setText(listA.get(position).name);
info.setText(listA.get(position).info);
Picasso.with(NewsFragment.this.getActivity()).load("http://giclub.esy.es/image/" + listA.get(position).img).into(img);
return view;
}
}
}
NewsList.java
public class NewsList {
public String id;
public String name;
public String info;
public String img;
public NewsList(String id ,String name, String info, String img) {
this.id = id;
this.name = name;
this.info = info;
this.img = img;
}
}
news_itm.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/newspic"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="اقرأ المزيد"
android:textAlignment="center"
android:id="@+id/text_info"
android:layout_gravity="center"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_marginStart="35dp" />
<TextView
android:text="TextView"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:textSize="15dp"
android:id="@+id/textaddress"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
</LinearLayout>
我该怎么做?
答案 0 :(得分:0)
首先我会建议在ui和数据访问之间拆分代码,然后在不同的威胁而不是ui线程中加载数据
首先尝试使用虚拟数据加载屏幕以检查布局和屏幕是否正常工作然后将其连接到&#34; DAL&#34;使用您保存的数据
答案 1 :(得分:0)
当您的布局为**news_itm.xml**
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView inflater.inflate(R.layout.**newslayout**,container,false);