我开始在Android上编写代码,但我认为我的代码很重,可能会降低我的应用程序的性能。
例如,当我运行我的应用程序时,我尝试在我的一个网页视图中拖动页面,这是相当滞后的。
这不包括进口:
package com.anthoapps.googlewebviewsample;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
//AFFICHAGE DU LOGO PENDANT 3SEC
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
final ImageView imgv1 = (ImageView) findViewById(R.id.logo);
imgv1.setVisibility(View.VISIBLE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
imgv1.setVisibility(View.GONE);
}
},2 * 1000); // Pour 3 secondes
final WebView webv1 = (WebView) findViewById(R.id.webView);
webv1.setVisibility(View.INVISIBLE);
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.boutonfacebook))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("https://m.facebook.com/Google");
}
});
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.boutonvip))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.fr");
}
});
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.boutonlive))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.de");
}
});
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.liste))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.it");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.pagefb))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("https://m.facebook.com/Google");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.pagevip))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
webv1.setVisibility(View.VISIBLE);
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.fr");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.live))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.de");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.boutonliste))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.it");
}
});
}
}发布于 2014-10-30 15:28:20
您的格式在这里有很多问题,几乎没有什么是正确缩进的。
如果您希望CodeReview检查您的代码,请至少将评论翻译成英文。
下面是代码在适当缩进时的样子
package com.anthoapps.googlewebviewsample;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
//AFFICHAGE DU LOGO PENDANT 3SEC
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
final ImageView imgv1 = (ImageView) findViewById(R.id.logo);
imgv1.setVisibility(View.VISIBLE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
imgv1.setVisibility(View.GONE);
}
},2 * 1000); // Pour 3 secondes
final WebView webv1 = (WebView) findViewById(R.id.webView);
webv1.setVisibility(View.INVISIBLE);
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.boutonfacebook))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("https://m.facebook.com/Google");
}
});
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.boutonvip))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.fr");
}
});
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.boutonlive))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.de");
}
});
// Nous cherchons le bouton dans notre interface
((ImageButton)findViewById(R.id.liste))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.it");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.pagefb))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("https://m.facebook.com/Google");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.pagevip))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
webv1.setVisibility(View.VISIBLE);
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.fr");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.live))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.de");
}
});
// Nous cherchons le bouton dans notre interface
((Button)findViewById(R.id.boutonliste))
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
WebView wvSite = (WebView)findViewById(R.id.webView);
WebView myWebView = (WebView) findViewById(R.id.webView);
myWebView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = wvSite.getSettings();
webSettings.setJavaScriptEnabled(true);
//...et on charge la page
wvSite.loadUrl("http://www.google.it");
}
});
}
}你也有一些额外的空白。
发布于 2014-10-31 16:48:09
您的onCreate中有很多代码重复--除了加载的url之外,您的所有onClickListeners都是相等的。您可以将这些url放到视图的标记中,或者创建Map来映射id-url。
此外,您正在查找您的网页视图在每次点击-使它成为一个字段,并找到和配置它一次。findViewById对于性能来说是相当沉重的。
实现:(对不起,我不知道注释所用的语言,这样它们的结构就会被破坏)
private WebView myWebView; //fields are accessible for anonymous classes
/**
* Called when the activity is first created.
*/
//AFFICHAGE DU LOGO PENDANT 3SEC
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
final ImageView logo = (ImageView) findViewById(R.id.logo); //bad name. you can use "logo", or if you are stuck to pointing the type in the name - ivLogo
// logo.setVisibility(View.VISIBLE); //onCreate is called when activity is first created, so you can omit this line.
new Handler().postDelayed(new Runnable() { //non-static handlers are dangerous for memory-leaks
@Override
public void run() {
imgv1.setVisibility(View.GONE);
}
}, 2 * 1000); // Pour 3 secondes - this is for 2 :)
myWebView = (WebView) findViewById(R.id.webView);
myWebView.setVisibility(View.INVISIBLE); //again, onCreate is called when activity is first created, so explicitly set webview's visibility in your xml
//You are duplicating code in all your onClickListeners. The only explicit difference is in url to load. We can put that in views tag or create Map<Integer, String> with <id-urlToLoad>
myWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.loadData("Impossible de charger la page, veuillez vérifier votre connexion internet.", "text/html", "UTF-8");
}
});
//...on active JavaScript...
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
final OnClickListener onClickListener = (OnClickListener) new OnClickListener() {
@Override
public void onClick(View v) {
// Nous affichons un message à l’utilisateur
// Instanciation du WebView...
webv1.setVisibility(View.VISIBLE);
//...et on charge la page
myWebView.loadUrl((String) v.getTag());
}
};
final ImageButton fbButton = (ImageButton) findViewById(R.id.boutonfacebook);
fbButton.setTag("https://m.facebook.com/Google");
fbButton.setOnClickListener(onClickListener);
// Nous cherchons le bouton dans notre interface
final ImageButton vipButton = (ImageButton) findViewById(R.id.boutonvip);
vipButton.setTag("http://www.google.fr")
vipButton
// Nous paramétrons un écouteur sur l’événement ‘click’ de ce bouton
.setOnClickListener(onClickListener);
//and so on...
}变量的名称可能更有意义。imgv1作为一个名称非常无用,您可以使用“徽标”或(如果您坚持将视图的类型输入名称) ivLogo。我会用"ivLogo“来表示xml,而用"logo”来表示变量名。
https://codereview.stackexchange.com/questions/68409
复制相似问题