因此,我發現的一切都是使用strings.xml文件來填充微調框。我想要做的是根據我從JSON響應中獲得的信息填充微調器。我有以下代碼,我用來填充一個表,但爲此進行了修改。然而,我的微調仍是空白,我沒有得到任何錯誤,除了D/ViewRootImpl: #3 mView = null
填充Spinner無Strings.xml文件
下面是代碼來填充微調:
public class SecondFragment extends Fragment implements APIRequestsUtil.APIRequestResponseListener
{
View myView;
Map<String, Route> drives;
private ArrayAdapter<Integer> adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.second_layout, container, false);
APIRequestsUtil.setOnNetWorkListener(this);
return myView;
}
private void populateView() {
this.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
drives = APIRequestsUtil.getRoutes();
Spinner spinner = (Spinner) myView.findViewById(R.id.spinner);
int driveNum = 0;
for (Map.Entry drive : drives.entrySet()) {
TableRow tr = new TableRow(getActivity());
Route route = (Route) drive.getValue();
tr.setId(driveNum++);
//tr.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
spinner.setId(driveNum);
}
}
});
}
//@Override
public void onFailure(Request request, Throwable throwable) {
}
//@Override
public void onResponse(Response response) {
populateView();
}
}
這裏是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:id="@+id/spinner"/>
</RelativeLayout>
我會用一個ListView,但我需要一個下拉,因爲使用一個ListView將太多的頁面上怎麼回事。 –
@JamesRobertSingleton:沒關係。我的觀點是'Spinner'和'ListView'很像。 'ListView'也大大受歡迎。所以,如果你無法找到一個用'Spinner'做某事的例子,找一個用ListView做同樣事情的例子,它應該給你提供線索,以便你用'Spinner'實現它。 – CommonsWare
該示例具有私有靜態最終String [] items = {「lorem」,「ipsum」,「dolor」等等)。我不想設置這些值。 –