2016-04-07 12 views
1

Ich benutze diese tutorial .Ich versuche, Bild von Json zu bekommen .Listview funktioniert Nun, wenn ich Listview (Beispiel: zweite Zeile) klicken möchte ich Bild2 in Webview sehen, aber ich habe problem possition.Android JSON Benutzerdefinierte ListView mit Webview

private static final String TAG = Jsonlol.class.getSimpleName(); 
private String url; 
private List<ListItem> listItem = new ArrayList<ListItem>(); 
private ListView listView; 
private CustomListAdapter adapter; 
private Dialog webViewDialog; 
private WebView webView; 
private Button btClose; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.json_main); 

    url = getString(R.string.hellojson); 

    listView = (ListView) findViewById(R.id.listview); 
    adapter = new CustomListAdapter(this, listItem); 
    listView.setAdapter(adapter); 
    listView.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
        if(position == 0) 
        { 
         webView.loadUrl(" Image 1 HERE "); 

         webViewDialog = new Dialog(Jsonlol.this); 
         webViewDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
         webViewDialog.setContentView(R.layout.wepbas); 
         webView = (WebView) webViewDialog.findViewById(R.id.wb_webview); 
         webViewDialog.show(); 


        } 
        if(position == 1) 
        { 
         webView.loadUrl(" Image 2 HERE "); 

         webViewDialog = new Dialog(Jsonlol.this); 
         webViewDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
         webViewDialog.setContentView(R.layout.wepbas); 
         webView = (WebView) webViewDialog.findViewById(R.id.wb_webview); 
         webViewDialog.show(); 


        } 
        } }); 




    JsonArrayPostRequest itemReq = new JsonArrayPostRequest(url, 
      new Response.Listener<JSONArray>() { 

       public void onResponse(JSONArray response) { 

        for (int i = 0; i < response.length(); i++) { 
         try { 


          JSONObject obj = response.getJSONObject(i); 
          ListItem item = new ListItem(); 
          item.setTitle(obj.getString("title")); 
          item.setThumbnailUrl(obj.getString("image")); 
          item.setrlevel(obj.getString("rlevel")); 

          listItem.add(item); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 

        } 

        adapter.notifyDataSetChanged(); 
       } 


      }, new Response.ErrorListener() { 

       public void onErrorResponse(VolleyError error) { 
        VolleyLog.d(TAG, "Error: " + error.getMessage()); 

       } 
      }); 

    AppController.getInstance().addToRequestQueue(itemReq); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
} 

hier Json

[{ 
    "id": "1", 
    "title": "Test 1", 
    "image": "http://api.androidhive.info/json/movies/1.jpg", 
    "image2": "http://api.androidhive.info/json/movies/1.jpg", 
    "rlevel": "Test 1" 
}, 
{ 
    "id": "2", 
    "title": "Test 2", 
    "image": "http://api.androidhive.info/json/movies/2.jpg", 
    "image2": "http://api.androidhive.info/json/movies/2.jpg", 
    "rlevel": "Test 2" 
}] 

Antwort

1

Sie webView an falscher Stelle anrufen,

if(position == 0) 
       { 
        webViewDialog = new Dialog(Jsonlol.this); 
        webViewDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
        webViewDialog.setContentView(R.layout.wepbas); 
        webView = (WebView) webViewDialog.findViewById(R.id.wb_webview); 
        webView.loadUrl(listItem.get(0).getThumbnailUrl()); 
        webViewDialog.show(); 
       } 
       if(position == 1) 
       { 
        webViewDialog = new Dialog(Jsonlol.this); 
        webViewDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
        webViewDialog.setContentView(R.layout.wepbas); 
        webView = (WebView) webViewDialog.findViewById(R.id.wb_webview); 
        webView.loadUrl(listItem.get(1).getThumbnailUrl()); 
        webViewDialog.show(); 
       } 

Aber wenn Ihr Ziel nur Bild zeigt, wenn Nutzer auf Ihr Listenelement geklickt haben, können Sie versuchen, um Ihr Bild zu einem ImageView mit picasso, ion und diese Art von Bibliotheken zu zeigen.

+0

Funktioniert perfekt. Vielen Dank, mein Herr. – naber

+0

Gut zu hören, dass es funktioniert. Bitte schön –

Verwandte Themen