#android #android-button
#Android #android-кнопка
Вопрос:
Я создал кнопку и две функции / метода в своей деятельности, один метод для принудительного выхода из приложения, а другой для удаления каталога кэша.
Теперь я хочу вызвать оба метода, когда я нажимаю на кнопку, я отменил выход, но я не знаю, что делать дальше.
Мой код активности:
package com.beta.accs;
import android.app.Activity;
import android.content.ComponentName;
import android.os.Bundle;
import android.os.Process;
import android.view.View;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import java.io.File;
import android.content.Context;
import android.widget.Button;
public class MainActivity extends Activity {
public WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.WebViewSNCF);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl("https://www.oui.sncf/services/acces-plus"); //Ton url de page Principal;
webView.setWebViewClient(new WebViewClient()); //pour rester dans l'aplication meme en cliquant partout a l'ecran.
webView.getSettings().setBuiltInZoomControls(true);
}
public void clickExit(View view) {
moveTaskToBack(true);
Process.killProcess(R.id.WebViewSNCF);
System.exit(1);
}
public void clicReturn(View view) {
if (webView.canGoBack()) {
webView.goBack();
}
}
public static void deleteCache(Context context) {
try {
File dir = context.getCacheDir();
deleteDir(dir);
} catch (Exception e) {}
}
public static boolean deleteDir(File dir) {
if (dir != null amp;amp; dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i ) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
return dir.delete();
} else if(dir!= null amp;amp; dir.isFile()) {
return dir.delete();
} else {
return false;
}
}
}
Пожалуйста, покажите мне способ, как я могу вызвать эти оба метода одним нажатием кнопки.
Комментарии:
1. В вашем коде действия кнопка отсутствует. Пожалуйста, разместите свой
activity_main
XML-макет здесь.2. Создайте третью функцию, которая вызывает две функции, которые вам нужно вызвать, затем подключите эту третью функцию к нажатию кнопки?
3. в чем ваша проблема, вы не можете вызвать метод или ваш метод не работает?
Ответ №1:
Что-то вроде этого:
Button your_btn = findViewById(R.id.button); // reference to your button ID in your layout xml file
your_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
deleteCache(); // delete cache
clickExit(); // exit
}
});
Комментарии:
1. в нем говорится, что «clickExit (просмотр) в MainActivity не может быть применен к ()», удаляет ту же ошибку: / спасибо за ответ ^^
2. Для этих двух методов требуются параметры. — представление для clickExit — контекст для удаления кэша, поэтому оно должно быть: clickExit(WebView); deleteCache(this.getApplicationContext);