本文的目的是介绍Android:点击网页视图中的网页链接的详细情况,特别关注android显示网页的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Android:点击
本文的目的是介绍Android:点击网页视图中的网页链接的详细情况,特别关注android 显示网页的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解Android:点击网页视图中的网页链接的机会,同时也不会遗漏关于android webview 如何监听网页中的点击按钮、android – 如何在列表视图中使项目可点击?、android – 如何打开新的活动点击列表视图中的项目?、android – 当我点击特定视图时,如何在列表视图中获取项目的位置?的知识。
本文目录一览:- Android:点击网页视图中的网页链接(android 显示网页)
- android webview 如何监听网页中的点击按钮
- android – 如何在列表视图中使项目可点击?
- android – 如何打开新的活动点击列表视图中的项目?
- android – 当我点击特定视图时,如何在列表视图中获取项目的位置?
Android:点击网页视图中的网页链接(android 显示网页)
代码是:
@Override public boolean shouldOverrideUrlLoading(WebView view,String url) { if (url.contains("some site ")) { Intent i = new Intent(Intent.ACTION_VIEW,Uri.parse(url)); startActivity(i); return true; } else { view.loadUrl(url); return false; } }
@THelper和@mikegr,谢谢你的回复,
实际上在我的情况下我在我的网络应用程序中有一个模式面板(JSF),其中包含一些按钮,点击按钮我打开一些其他网站使用javascript window.open()方法在桌面浏览器中正常工作,但是,当我在web webview中包装这个web应用程序,一切正常,除非我第一次单击此按钮我可以使用外部浏览器打开其他站点,但是在第二次单击时webview尝试在webview中打开此otherite而不是外部浏览器,我得到的网站没有找到其他网站的整个网址,即使我注销并再次登录,因为启动的应用程序仍在运行,这种情况会发生.
在我的情况下,当应用程序空闲时,我得到黑屏.
我浏览网络并发现了simillar问题,但这也没有帮助,这里是链接:
http://groups.google.com/group/android-for-beginners/browse_thread/thread/42431dd1ca4a9d98
handling links in a webview,
任何帮助和想法对我都非常有帮助,这对我来说太长了
因为我试图在Web视图中显示我的Web应用程序,所以我只有一个活动,其中包含这样的代码
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { // so that when launcher is clicked while the application is // running,the application doesn''t start from the begnining } else { requestwindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); // Show the ProgressDialog on this thread this.progressDialog = ProgressDialog.show(this,"Pleas Wait..","Loading",true); browser = (WebView) findViewById(R.id.webview); browser.getSettings().setJavaScriptEnabled(true); browser.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view,String url) { Log.i(TAG,"Finished loading URL: " +url); if (progressDialog.isShowing()) { progressDialog .dismiss(); } } @Override public boolean shouldOverrideUrlLoading(WebView view,String url) { if (url.contains("some site")) { Intent i = new Intent(Intent.ACTION_VIEW,Uri.parse(url)); startActivity(i); return true; } else { view.loadUrl(url); return true; } } }); browser.loadUrl("mysite"); } }
解决方法
有关此主题的一些错误
http://code.google.com/p/android/issues
像错误编号15827,9122,812,2887
作为一种解决方法,尝试添加方法onPageStarted()并检查是否接到此调用.对我来说,即使之前未调用shouldOverrideUrlLoading(),也始终会调用此方法.
android webview 如何监听网页中的点击按钮
比如,随便一个网址,上面有个点击按钮A
在手机上运行一个客户端,利用webview把这个网址加载进来,我现在点击这个按钮A
请问,webview有没有办法监控到我点击了这个按钮,而不是点击网页其他地方?
android – 如何在列表视图中使项目可点击?
我必须显示一个包含项目列表的弹出窗口.
我能够显示窗口,但单击列表视图中的项目时未调用onitemclicklistener.任何有关此问题的帮助将不胜感激.
谢谢
EDIT1:
public class PopUpWindowActivity extends Activity { /** Called when the activity is first created. */ String[] countries = new String[] { "India","USA","Canada" }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); ListView lv = new ListView(this); lv.setAdapter(new ArrayAdapter < String > (this,android.R.layout.simple_list_item_1,countries)); lv.setonItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView <? > arg0,View arg1,int arg2,long arg3) { Log.v("clicked",(String)((TextView) arg1).getText()); } }); ll.addView(lv); setContentView(ll); } }
在上面的代码中,我试图创建一个布局,其中我添加了一个列表视图.这使列表视图不再可单击.我必须这样做因为,我正在尝试实现一个弹出窗口,其中应该有多个项目以及列表视图.
解决方法
申请此样本请为您工作我已经测试了此代码
//ListviewActivity.java
package com.anl.lk; public class ListviewActivity extends ListActivity { static final String[] COUNTRIES = new String[] { "Afghanistan","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setlistadapter(new ArrayAdapter < String > (this,COUNTRIES)); getListView().setTextFilterEnabled(true); } @Override protected void onListItemClick(ListView l,View v,int position,long id) { // Todo Auto-generated method stub super.onListItemClick(l,v,position,id); new AlertDialog.Builder(this) .setTitle("Hello") .setMessage("from " + getListView().getItemAtPosition(position)) .setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) {} }) .show(); Toast.makeText(ListviewActivity.this,"ListView: " + l.toString() + "\n" + "View: " + v.toString() + "\n" + "position: " + String.valueOf(position) + "\n" + "id: " + String.valueOf(id),Toast.LENGTH_LONG).show(); } }
//第一页
package com.anl.lk; public class FirstPage extends Activity { @override protected void onCreate(Bundle savedInstanceState) { // Todo Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.button1); b.setonClickListener(new OnClickListener() { public void onClick(View v) { // Todo Auto-generated method stub Intent sam = new Intent(FirstPage.this,ListviewActivity.class); startActivity(sam); } }); } }
//清单文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.anl.lk" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".FirstPage" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ListviewActivity" android:theme="@android:style/Theme.Dialog"></activity> </application>
请使用此代码,它有您的解决方案
android – 如何打开新的活动点击列表视图中的项目?
protected void onItemClick(ListView l,View v,int position,long id,AdapterView<?> parent) { super.onListItemClick(l,v,position,id); final ApplicationInfo app = applist.get(position); PackageInfo packageInfo = (PackageInfo) parent.getItemAtPosition(position); AppDataActivity appData = (AppDataActivity) getApplicationContext(); appData.setPackageInfo(packageInfo); Intent appInfo = new Intent(getApplicationContext(),ApkInfoActivity.class); startActivity(appInfo); }
我找不到问题.我如何解决?
使用logcat编辑:
10-29 17:14:07.710: E/AndroidRuntime(3535): FATAL EXCEPTION: main 10-29 17:14:07.710: E/AndroidRuntime(3535): java.lang.classCastException: android.content.pm.ApplicationInfo cannot be cast to android.content.pm.PackageInfo 10-29 17:14:07.710: E/AndroidRuntime(3535): at com.dd.application.MainActivity.onItemClick(MainActivity.java:369) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AdapterView.performItemClick(AdapterView.java:297) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AbsListView.performItemClick(AbsListView.java:1149) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2939) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AbsListView$2.run(AbsListView.java:3622) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.os.Handler.handleCallback(Handler.java:730) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.os.Handler.dispatchMessage(Handler.java:92) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.os.Looper.loop(Looper.java:137) 10-29 17:14:07.710: E/AndroidRuntime(3535): at android.app.ActivityThread.main(ActivityThread.java:5323) 10-29 17:14:07.710: E/AndroidRuntime(3535): at java.lang.reflect.Method.invokeNative(Native Method) 10-29 17:14:07.710: E/AndroidRuntime(3535): at java.lang.reflect.Method.invoke(Method.java:525) 10-29 17:14:07.710: E/AndroidRuntime(3535): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:743) 10-29 17:14:07.710: E/AndroidRuntime(3535): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559) 10-29 17:14:07.710: E/AndroidRuntime(3535): at dalvik.system.NativeStart.main(Native Method)
解决方法
list.setonItemClickListener(new AdapterView.onItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter,View view,long arg) { Intent appInfo = new Intent(YourActivity.this,ApkInfoActivity.class); startActivity(appInfo); } });
android – 当我点击特定视图时,如何在列表视图中获取项目的位置?
正如标题所示,当我点击项目内的视图时,我想知道项目的确切位置.
假设我在ArrayAdapter的getView()方法中有以下代码:
...
holder = new ViewHolder ();
holder.iconAction = (ImageView)convertView.findViewById (R.id.download_item_iconAction);
holder.iconAction.setonClickListener (new View.OnClickListener(){
@Override
public void onClick (View v){
//Item X is clicked
}
});
...
在onClick()中,我知道点击的视图,v,但我不知道项目的位置.
我们来做个伎俩.当getView()创建视图时,我将在ViewHolder中保存位置:
public View getView (int position, View convertView, ViewGroup parent){
ViewHolder holder;
if (convertView == null){
holder = new ViewHolder ();
holder.iconAction = (ImageView)convertView.findViewById (id);
holder.iconAction.setonClickListener (new View.OnClickListener(){
@Override
public void onClick (View v){
int pos = (Integer)v.getTag ();
}
});
holder.iconWait.setTag (position);
...
}else{
holder = (ViewHolder)convertView.getTag ();
}
...
}
此代码有效……但并非总是如此.如果必须滚动列表以查看视图被回收的所有项目.假设列表有10个元素,只有5个可见(可见意味着:如果我们看到一个项目的1个像素行,则此项目可见).现在,如果我们向下滚动,我们将看到第六个元素,但第一个(0)仍然可见.我们滚动一点,第一个元素将被隐藏,我们将看到第七个元素出现,但是这个新元素的视图是第一个元素(0)的视图.所以我保存位置:0,1,2,3,4和5.第七个元素(6)将保存位置0:错误.
获取单击回调的另一种方法是使用ListView的OnItemClickListener侦听器:
listView = getListView ();
listView.setonItemClickListener (new AdapterView.OnItemClickListener(){
@Override
public void onItemClick (AdapterView<?> parentView, View childView, int position, long id){
...
}
});
如果我向下滚动,我会得到确切的位置,但是通过这种方式,我会在单击项目时收到回调,无论点击的子视图如何.
谢谢.
解决方法:
你几乎就在那里,你需要做的就是在if / else子句之后设置标签.这是为了确保在回收视图时以及从new创建视图时更新标记.
例如
if (convertView == null){
holder = new ViewHolder ();
...
}else{
holder = (ViewHolder)convertView.getTag ();
}
holder.iconWait.setTag (position);
今天关于Android:点击网页视图中的网页链接和android 显示网页的介绍到此结束,谢谢您的阅读,有关android webview 如何监听网页中的点击按钮、android – 如何在列表视图中使项目可点击?、android – 如何打开新的活动点击列表视图中的项目?、android – 当我点击特定视图时,如何在列表视图中获取项目的位置?等更多相关知识的信息可以在本站进行查询。
本文标签: