在我的应用程序中,我有一个WebView从Internet加载任何URL.现在,有时由于网络速度慢,页面需要很长时间才能加载,用户只能看到一个空白屏幕.
我想显示ProgressBar的同时WebView被加载和隐藏ProgessBar当WebView被完全加载.
我知道如何使用ProgressBar和AsyncTasks,但这是我的问题.
这是我用来加载我的代码WebView.
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.loadUrl(web_URL);
Run Code Online (Sandbox Code Playgroud)
这是我的自定义WebViewClient课程
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试显示ProgressBar使用AsyncTasks然后我想我必须给代码加载doInBackGround()我的函数中的URL AsyncTask并通过该onProgressUpdate()函数显示进度.
但是,如何在doInBackground()中加载URL,因为doInBackground()在非UI线程上运行,我无法在其中使用mWebView.loadUrl(web_URL).
有什么建议?我错过了一些明显的东西吗 请指导我.
android android-webview android-progressbar android-asynctask
我不知道如何解决我的问题.我们在Android市场上发布了一个Android应用程序.在解决了一些问题之后,我们无法将其作为应用程序在市场中的下一个版本发布,因为我们丢失了用于签署该构建的私钥.如果更新版本未使用相同的密钥签名,则android不接受构建.
对于这个应用程序,很少有用户已经在市场上购买它.如果我们使用不同的包名称上传相同的应用程序,则购买的用户将无法获得更新的版本.我该如何解决这个问题?对此有何建议?
提前致谢...
我正在尝试使用JSON从服务器获取一组对象.
服务器向我发送以下字符串.
"[{\"DealComment\":null,\"DealVotes\":[],\"DealId\":1,\"CompanyId\":1,\"StartDate\":\"2012-12-13T00:00:00\",\"EndDate\":\"2012-12-16T00:00:00\",\"CouponCode\":\"Test Coupon 1\",\"Description\":\"Test Deal Description 1\",\"VoteUp\":null,\"VoteDown\":null,\"ViewCount\":null,\"Title\":\"Test Deal 1\"},{\"DealComment\":null,\"DealVotes\":[],\"DealId\":2,\"CompanyId\":1,\"StartDate\":\"2012-12-16T00:00:00\",\"EndDate\":\"2012-12-17T00:00:00\",\"CouponCode\":\"Test Coupon 2\",\"Description\":\"Test Description 2\",\"VoteUp\":null,\"VoteDown\":null,\"ViewCount\":null,\"Title\":\"Test Deal 2\"},{\"DealComment\":null,\"DealVotes\":[],\"DealId\":3,\"CompanyId\":1,\"StartDate\":\"2012-12-14T00:00:00\",\"EndDate\":\"2012-12-15T00:00:00\",\"CouponCode\":\"Test Code 3\",\"Description\":\"Test Description 3\",\"VoteUp\":null,\"VoteDown\":null,\"ViewCount\":null,\"Title\":\"Test Deal 3\"},{\"DealComment\":null,\"DealVotes\":[],\"DealId\":4,\"CompanyId\":1,\"StartDate\":\"2012-12-12T00:00:00\",\"EndDate\":\"2012-12-13T00:00:00\",\"CouponCode\":\"Test Coupon 4\",\"Description\":\"Test Description 4\",\"VoteUp\":null,\"VoteDown\":null,\"ViewCount\":null,\"Title\":\"Test Deal 4\"},{\"DealComment\":null,\"DealVotes\":[],\"DealId\":5,\"CompanyId\":2,\"StartDate\":\"2012-12-12T00:00:00\",\"EndDate\":\"2012-12-14T00:00:00\",\"CouponCode\":\"AwD\",\"Description\":\"Very awesome deal!\",\"VoteUp\":null,\"VoteDown\":null,\"ViewCount\":null,\"Title\":\"Awesome Deal 1\"}]"
Run Code Online (Sandbox Code Playgroud)
现在,如果你仔细查看字符串,你会发现它包含一个\"而不是每一个".该字符串现在无法格式化为JSONArray.所以,我需要更换的每个实例\"有",这将有一个非常简单的任务,也\没有一个转义序列.
我尝试使用以下代码.
String jsonFormattedString = jsonStr.replaceAll("\\", "");
Run Code Online (Sandbox Code Playgroud)
但它给了我以下例外.
12-19 00:35:59.575: W/System.err(444): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1:
12-19 00:35:59.575: W/System.err(444): \
12-19 00:35:59.575: W/System.err(444): ^
Run Code Online (Sandbox Code Playgroud)
我的整个代码,如果有任何用处:
public void getAllDealsFromServerJson()
{
String apiUrl = "http://passme.azurewebsites.net/api/TestApi/";
HttpClient …Run Code Online (Sandbox Code Playgroud) 摘自文档:
Eclipse有时喜欢在使用资源的文件顶部添加导入android.R语句,尤其是当您要求eclipse对排序或以其他方式管理导入时.这会导致你的品牌破产.注意这些错误的import语句并删除它们.
我的问题:为什么?为什么eclipse继续这样做?
我一直在使用Eclipse开发Android应用程序已经有一段时间了,但是我从来没有理解为什么eclipse会做这样的事情.
当我使用Ctrl+ Shift+ O来组织我的import语句时,import android.R会自动添加.突然间,我的正确代码突然被红色错误覆盖,说R无法解决.它对初学者来说真的很可怕,因为他不知道自己做错了什么.
在另一种情况下,假设我的布局文件有问题并且R.java没有生成,它说R无法解析,因为由于错误而没有生成R.java.当我将光标移动到任何错误时,它建议我import android.R.
在Android上工作了很长一段时间后,我知道永远不会导入android.R,但是我从来没有理解为什么eclipse一直在暗示它,坦率地说,添加导入android.R永远不会解决我的任何问题.它只是增加了现有的问题,这些问题在开发的最初阶段曾经非常痛苦.
那么,有没有人知道eclipse背后的原因是否提出了错误导入的建议?这只是一个错误吗?我不认为这是一个错误,因为它至少在Android文档中提到之后就已经修复了.
如果它不是一个bug,那么真正的目的是android.R什么?它到底指的是什么?
您的意见/经验将非常有帮助!
谢谢!
可能重复:
为什么静态变量被认为是邪恶的?
我习惯在我的所有程序中广泛使用静态变量,特别是在我使用Android时.我倾向于使用它们,因为有时通过Intents发送10个或更多值会感觉非常麻烦.因此,我只是将它们声明为静态变量,并使用"点"运算符轻松地在其他类中访问它们.使用静态变量的另一个原因是我在整个应用程序中使用Utility类.就像我下面给出的代码一样,可以帮助我在不同的活动中使用变量.
Utility.java
public class Utility {
public static Facebook fb;
public static AsyncFacebookRunner fbAsyncRunner;
public static String[] fbPermissions = {"email", "read_stream", "user_birthday"};
public static final String PREF_UTILITY_FILE_NAME = "PrefUtilityFile";
public static SharedPreferences prefs;
public static Editor editor;
public static String access_token;
public static long expires;
}
Run Code Online (Sandbox Code Playgroud)
我在网上搜索了类似的问题并遇到了这个和这个,但他们似乎没有给出问题的最终答案.在大多数地方,我看到了相互矛盾的观点,因此我感到很困惑.
这是一个很好的编程习惯还是坏的?我应该使用它吗?
我整理了一个小的测试Web应用程序,它将HTML画布转换为图像(通过使用Nihilogic的canvas2image JavaScript库),然后用生成的图像替换画布并显示一条消息,通知用户触摸(长)该图像以便把它保存到手机上.
我遇到的问题是Android的默认Web浏览器("Internet")不呈现代表图像的base64编码数据流,而是显示问号标记.有办法解决这个问题吗?如果是,那怎么样?
当我将笔记本电脑连接到我的Android手机时,电脑远离我这个错误:
1827 Data Router usb connection is true
1827 Data Router DSR is on Don't send DTR on
Run Code Online (Sandbox Code Playgroud)
我的手机是带有Android 4.03的Galaxy II.
根据我的搜索:
DSR=Data Set Ready DCE (Data Carrier Detect) is ready to receive commands or data.
DTR=Data Terminal Ready Indicates presence of DTE to DCE.
Run Code Online (Sandbox Code Playgroud) 当我提出以下请求时,Google仅提供错误503,并且不会提供任何有用的信息.
我在这里关注文档:https://developers.google.com/android-publisher/v1/purchases/get
最近刷新了授权令牌(自动).(通常情况下,当它陈旧时会说401.)
[root@308321 cgi-bin]# wget -dSO- 'https://www.googleapis.com/androidpublisher/v1/applications/com.kizbit.pairfinder/subscriptions/subscription99/purchases/vkorjajxnjfyhxbftpymwfox?access_token=ya29.AHES6ZSnxLdOVf2QWrX96VbpDMdUKlHFXJOFEdHM_f_ErQlL'
Setting --server-response (serverresponse) to 1
Setting --output-document (outputdocument) to -
DEBUG output created by Wget 1.12 on linux-gnu.
--2012-07-05 00:09:46-- https://www.googleapis.com/androidpublisher/v1/applications/com.kizbit.pairfinder/subscriptions/subscription99/purchases/vkorjajxnjfyhxbftpymwfox?access_token=ya29.AHES6ZSnxLdOVf2QWrX96VbpDMdUKlHFXJOFEdHM_f_ErQlL
Resolving www.googleapis.com... 2001:4860:b007::5f, 74.125.142.95
Caching www.googleapis.com => 2001:4860:b007::5f 74.125.142.95
Connecting to www.googleapis.com|2001:4860:b007::5f|:443... connected.
Created socket 3.
Releasing 0x0000000000cc9370 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 3 to SSL handle 0x0000000000cd8e70
certificate:
subject: /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.googleapis.com
issuer: /C=US/O=Google Inc/CN=Google Internet Authority
X509 certificate successfully verified and …Run Code Online (Sandbox Code Playgroud) 我正在使用列表来填充ListView().用户可以将项目添加到列表中.但是,我需要将项目显示在ListView的顶部.如何在列表的开头插入一个项目以便以相反的顺序显示它?
android ×8
google-play ×2
java ×2
bold ×1
eclipse ×1
escaping ×1
google-api ×1
html5-canvas ×1
import ×1
insert ×1
italics ×1
javascript ×1
list ×1
listview ×1
regex ×1
replace ×1
static ×1
string ×1
text ×1
xml ×1