1から取得するために、文字列の配列(それが働いたと私は結果を見ることができた)とボレーでリストビューを試した後、アンドロイドとボレー(ダブルトラブル:))AndroidのListViewコントロールとバレーボール
に非常に新しいです(試してみて結果を見て)
私は2つを組み合わせると(バレーからの応答、解析してアダプタに渡す)、何も表示されません。誰かが、ボレーとリストビューを組み合わせた実践的なチュートリアルを指導してくれますか、またはアダプタにリストビューでの応答を正しく表示させる方法を教えてください。
誰かが助けてくれることを願っています。
マイMainactivity.java
package com.example.web.listviewexample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
//Array of strings...
String[] mobileArray = {"Android", "Iphone", "Windows", "WebOs", "BlackBerry", "Max OS x"};
TextView results;
String JsonURL ="https://reqres.in/api/users/2";
String data="";
//define the volley request queue. It handles requests
RequestQueue requestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//get the listview that will communicate with the adapter
ListView listexample = (ListView) findViewById(R.id.mobile_list);
//prepare the adapter
final ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
//attach the adapter
listexample.setAdapter(adapter);
//Volley stuff --cricket_007 Stackoverflow.com answer
final JsonObjectRequest obj= new JsonObjectRequest(Request.Method.GET, JsonURL, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
// parse the response
response = response.getJSONObject("data");
// add things to the adapter
adapter.add(response.toString());
}
catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){error.printStackTrace();
}
});
Volley.newRequestQueue(this).add(obj);
}
}
Activity_Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<ListView
android:id="@+id/mobile_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout
activity_listview.xmlは
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="25sp"
android:padding="10dp"
android:textStyle="bold">
</TextView>
あなたのJsonUrlは無効です。それはセミコロンを持っています –
そしてあなたは2つの 'Volley.newRequestQueue(this)'を持っています。ただ1つが必要です。 –
@Marcoあなたのコードでは、Volleyリクエストの下にアダプタを作成しています。ボレーリクエストはデフォルトでは非同期であるため、アダプタを作成したり、値をonResponseに割り当てる必要があります。 – Enzokie