跟进:ListView not displaying anything with no errors
我在片段中添加了TextView,并将其text属性设置为unix时间。该更改未显示,但通过getText读取和记录属性表明它已更改。
我是否需要对片段强制进行某种刷新,如果是,我该怎么做?
片段类
public class MenuBetriebe extends Fragment {
ArrayList<HashMap<String, String>> mitgliederList;
ListView mitgliederListView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.menu_betriebe, container, false);
mitgliederList = new ArrayList<>();
mitgliederListView = view.findViewById(R.id.menu_betriebe_mitglieder_list);
String url = getString(R.string.api_base_url) + "json/read/mitglieder";
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
JSONArray mitglieder;
try {
mitglieder = response.getJSONArray("data");
for (int i = 0; i < mitglieder.length(); i++) {
JSONObject mitgliedObject = mitglieder.getJSONObject(i);
String mitglied_name = mitgliedObject.getString("mitglied_name");
Log.d("WBV", mitglied_name); // works
HashMap<String, String> mitglied = new HashMap<>();
mitglied.put("mitglied_name", mitglied_name);
mitgliederList.add(mitglied);
}
TextView textView = (TextView) view.findViewById(R.id.textView2);
textView.setText(Long.toString(System.currentTimeMillis()));
Log.d("WBV", textView.getText().toString()); // prints unix time but doesn't show on the fragment
ListAdapter adapter = new SimpleAdapter(
getActivity(),
mitgliederList,
R.layout.betriebe_list_item,
new String[]{"mitglied_name"},
new int[]{R.id.betriebe_list_item_mitglied_name});
mitgliederListView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("WBV", "Error: " + error.getMessage());
}
}
);
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, "json_obj_req");
return inflater.inflate(R.layout.menu_betriebe, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getActivity().setTitle("Betriebe");
}
}
片段布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_betriebe"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/menu_betriebe_mitglieder_list"
android:layout_width="match_parent"
android:layout_height="442dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="70dp"
android:text="Test" />
</LinearLayout>
答案 0 :(得分:0)
我正在创建一个新视图,而不是通过更改返回原始视图。
return inflater.inflate(R.layout.menu_betriebe, container, false);
应该是
return view