从 listactivity 启动 webview
Launch webview from listactivity
我正在尝试实施 OnItemClickListener 来为我的列表视图启动 Web 视图。每个提要项都有不同的 url(从 json 解析),我希望将此 url 加载到网络视图中。另外,我在 MainActivity 中收到 "TextView cannot be resolved to a type" 错误。 MainActivity 的内容视图是 activity_main.xml,而我的 TextView 是 feed.xml。该应用程序不会崩溃,但当我触摸提要项目时没有任何反应。我的 MainActivity 的一部分是`
@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);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(getApplicationContext(), WebActivity.class);
String url = ((TextView) view.findViewById(R.id.txtUrl)).getText().toString();
i.putExtra("url", url);
startActivity(i);
}
});
.......
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"));
String image = feedObj.isNull("image") ? null : feedObj.getString("image");
item.setImage(image);
item.setStatus(feedObj.getString("status"));
String feedUrl = feedObj.isNull("url") ? null : feedObj.getString("url");
item.setUrl(feedUrl);
feedItems.add(item);
}`
我的 WebActivity class 是
public class WebActivity extends Activity {
WebView web;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (WebView) findViewById(R.id.webview);
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl("url");
}
public class myWebClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
web.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
在 WebActivity
Activity 中使用 getIntent
得到从之前的 Activity 传递过来的 url
:
web.getSettings().setJavaScriptEnabled(true);
Intent intent=getIntent();
String url;
if(intent !=null)
url=intent.getStringExtra("url");
web.loadUrl(url);
使用下面的代码获取点击项目url
String url = parent.getItemAtPosition(position).getUrl()
和
Intent i = new Intent(getApplicationContext(), WebActivity.class);
i.putExtra("url", url);
startActivity(i);
在 WebActivity 中
String url="";
//In onCreate
url = getIntent().getExtras().getString("url");
web = (WebView)findViewById(R.id.webview);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
web.loadUrl(url);
我们的目标是在 WebActivity 中打开 url,它与 MainActivity 中的 feedItems 相关联,我们必须将数据从 MainActivity 传递到我们的 WebActivity,而您正在正确处理它。通过发送 "url" 意图将数据从 MainActivity 传递到 WebActivity。
i.putExtra("url", url);
现在我们已经将数据从 MainActivity 传递到 WebActivity,我们必须处理从 MainActivity 发送的数据。
我们可以使用 Intent 对象上的 getData() 方法进行检索。 Intent 对象可以通过 getIntent() 方法获取,这里请确保 intent 不为 null。
Intent intent = getIntent();
if (null != intent) {
String stringURL = intent.getStringExtra("url");
web.loadUrl(stringURL);
}
像这样更新您的 onCreate:
web.getSettings().setJavaScriptEnabled(true);
Intent intent = getIntent();
if (null != intent) {
String stringURL = intent.getStringExtra("url");
web.loadUrl(stringURL);
}
}
我正在尝试实施 OnItemClickListener 来为我的列表视图启动 Web 视图。每个提要项都有不同的 url(从 json 解析),我希望将此 url 加载到网络视图中。另外,我在 MainActivity 中收到 "TextView cannot be resolved to a type" 错误。 MainActivity 的内容视图是 activity_main.xml,而我的 TextView 是 feed.xml。该应用程序不会崩溃,但当我触摸提要项目时没有任何反应。我的 MainActivity 的一部分是`
@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);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(getApplicationContext(), WebActivity.class);
String url = ((TextView) view.findViewById(R.id.txtUrl)).getText().toString();
i.putExtra("url", url);
startActivity(i);
}
});
.......
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"));
String image = feedObj.isNull("image") ? null : feedObj.getString("image");
item.setImage(image);
item.setStatus(feedObj.getString("status"));
String feedUrl = feedObj.isNull("url") ? null : feedObj.getString("url");
item.setUrl(feedUrl);
feedItems.add(item);
}`
我的 WebActivity class 是
public class WebActivity extends Activity {
WebView web;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (WebView) findViewById(R.id.webview);
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl("url");
}
public class myWebClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
web.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
在 WebActivity
Activity 中使用 getIntent
得到从之前的 Activity 传递过来的 url
:
web.getSettings().setJavaScriptEnabled(true);
Intent intent=getIntent();
String url;
if(intent !=null)
url=intent.getStringExtra("url");
web.loadUrl(url);
使用下面的代码获取点击项目url
String url = parent.getItemAtPosition(position).getUrl()
和
Intent i = new Intent(getApplicationContext(), WebActivity.class);
i.putExtra("url", url);
startActivity(i);
在 WebActivity 中
String url="";
//In onCreate
url = getIntent().getExtras().getString("url");
web = (WebView)findViewById(R.id.webview);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
web.loadUrl(url);
我们的目标是在 WebActivity 中打开 url,它与 MainActivity 中的 feedItems 相关联,我们必须将数据从 MainActivity 传递到我们的 WebActivity,而您正在正确处理它。通过发送 "url" 意图将数据从 MainActivity 传递到 WebActivity。
i.putExtra("url", url);
现在我们已经将数据从 MainActivity 传递到 WebActivity,我们必须处理从 MainActivity 发送的数据。
我们可以使用 Intent 对象上的 getData() 方法进行检索。 Intent 对象可以通过 getIntent() 方法获取,这里请确保 intent 不为 null。
Intent intent = getIntent();
if (null != intent) {
String stringURL = intent.getStringExtra("url");
web.loadUrl(stringURL);
}
像这样更新您的 onCreate:
web.getSettings().setJavaScriptEnabled(true);
Intent intent = getIntent();
if (null != intent) {
String stringURL = intent.getStringExtra("url");
web.loadUrl(stringURL);
}
}