私が見つけたことは、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>
私は、リストビューを使用しますが、リストビューを使用すると、あまりにも多くのページ上に行くことになるので、私は、ドロップダウンを必要とします。 –
@JamesRobertSingleton:これは問題ありません。私の指摘は、 'Spinner'は' ListView'のように動作することです。 'ListView'も実質的により一般的です。ですから、 'Spinner'を使って何かをする例が見つからない場合、' ListView'を使って同じことをする例を見つけて、 'Spinner'で実装する方法の手がかりを与えるべきです。 – CommonsWare
この例では、private static final String [] items = {"lorem"、 "ipsum"、 "dolor"など}があります。私はこれらの値を設定したくない。 –