J'ai une activité qui récupère le contenu d'un URI json (http://api.androidhive.info/feed/feed.json) et affiche le contenu dans une vue de liste.Ouvrir l'URL JSON sur la Webview Activité
Le contenu comprend des images, l'URI du message, la description, etc. Chaque élément de contenu possède son propre URI. Au lieu d'ouvrir les URI cliqués en utilisant un navigateur Web, je voudrais plutôt l'ouvrir en autre activité qui a une vue web.
Désolé pour re-poser cette question j'ai un problème.je obtenu un code source de http:// www.androidhive.info/2014/06/android-facebook-like-custom-listview-feed-using-volley qui fonctionne bien et un grand code source j'ai un problème en essayant de passer le lien cliquez pour ouvrir dans l'application webview.
c'est le JSON DATA
{
"feed": [
{
"id": 2,
"name": "TIME",
"image": "http://api.androidhive.info/feed/img/time_best.jpg",
"status": "30 years of Cirque du Soleil's best photos",
"profilePic": "http://api.androidhive.info/feed/img/time.png",
"timeStamp": "1403375851930",
"url": "http://ti.me/1qW8MLB"
},
{
"id": 11,
"name": "A. R. rahman",
"image": "http://api.androidhive.info/feed/img/ar_bw.jpg",
"status": "",
"profilePic": "http://api.androidhive.info/feed/img/ar.jpg",
"timeStamp": "1403375851930",
"url": ""
}
]
}
c'est le MainActivity.java
package info.androidhive.listviewfeed;
public class MainActivity extends Activity {
private static final String TAG = MainActivity.class.getSimpleName();
private ListView listView;
private FeedListAdapter listAdapter;
private List<FeedItem> feedItems;
private String URL_FEED = "http://api.androidhive.info/feed/feed.json";
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.list);
feedItems = new ArrayList<FeedItem>();
listAdapter = new FeedListAdapter(this, feedItems);
listView.setAdapter(listAdapter);
// These two lines not needed,
// just to get the look of facebook (changing background color & hiding the icon)
getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#3b5998")));
getActionBar().setIcon(
new ColorDrawable(getResources().getColor(android.R.color.transparent)));
// We first check for cached request
Cache cache = AppController.getInstance().getRequestQueue().getCache();
Entry entry = cache.get(URL_FEED);
if (entry != null) {
// fetch the data from cache
try {
String data = new String(entry.data, "UTF-8");
try {
parseJsonFeed(new JSONObject(data));
} catch (JSONException e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} else {
// making fresh volley request and getting json
JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,
URL_FEED, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
VolleyLog.d(TAG, "Response: " + response.toString());
if (response != null) {
parseJsonFeed(response);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
});
// Adding request to volley request queue
AppController.getInstance().addToRequestQueue(jsonReq);
}
}
/**
* Parsing json reponse and passing the data to feed view list adapter
* */
private void parseJsonFeed(JSONObject response) {
try {
JSONArray feedArray = response.getJSONArray("feed");
for (int i = 0; i < feedArray.length(); i++) {
JSONObject feedObj = (JSONObject) feedArray.get(i);
FeedItem item = new FeedItem();
item.setId(feedObj.getInt("id"));
item.setName(feedObj.getString("name"));
// Image might be null sometimes
String image = feedObj.isNull("image") ? null : feedObj
.getString("image");
item.setImge(image);
item.setStatus(feedObj.getString("status"));
item.setProfilePic(feedObj.getString("profilePic"));
item.setTimeStamp(feedObj.getString("timeStamp"));
// url might be null sometimes
String feedUrl = feedObj.isNull("url") ? null : feedObj
.getString("url");
item.setUrl(feedUrl);
feedItems.add(item);
}
// notify data changes to list adapater
listAdapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
et c'est le webview.java i créé lorsque les liens de http:// api.androidhive.info/feed/feed.json être acquis passés et ouvert dans WebView lorsqu'on clique dessus
public class webview extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
String getStringFromEdittext = "https:// www.google.co.in"+ getIntent().getExtras().getString("text");
WebView wb = (WebView)findViewById(R.id.webView1);
wb.setWebViewClient(new WebViewClient());
System.out.println("URL"+getStringFromEdittext);
wb.loadUrl(getStringFromEdittext);
wb.getSettings().setJavaScriptEnabled(true);
Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
});
}
}
S'il vous plaît formater _all_ de votre code code. –
qu'est-ce que vous voulez accomplir? ouvert dans une autre activité ou dans le même webview? –
le MainActivity n'est pas un webview, il récupère des données du serveur de json et l'affiche je veux que l'URL soit ouverte dans une autre activité contenant le webview –