である、あなたは012でSet
を保存することができます。ここで
は一例です:その後、
private List<String> getDownloadedFileList() {
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
List<String> downloadedFileList = Collections.emptyList();
try {
downloadedFileList = (ArrayList<String>) ObjectSerializer.deserialize(prefs.getString(TASKS, ObjectSerializer.serialize(new ArrayList<task>())));
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return downloadedFileList;
}
private void setDownloadedFileList(List<String> downloadedFileList) {
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
Editor editor = prefs.edit();
try {
editor.putString(DOWNLOADED_FILES, ObjectSerializer.serialize(downloadedFileList));
} catch (IOException e) {
e.printStackTrace();
}
editor.commit();
}
private void addDownloadedFile(String filename) {
List<String> downloadedFileList = getDownloadedFileList();
if(!downloadedFileList .contains(filename)) {
downloadedFileList.add(filename);
setDownloadedFileList(downloadedFileList);
}
}
private boolean checkDownloadedFileExists(String filename) {
return getDownloadedFileList().contains(filename);
}
そして、あなたのボタンのプロパティを設定するとき:
btinstall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File file = new File(Environment.getExternalStorageDirectory() + "/download/app-debug.apk");
addDownloadedFile("/download/app-debug.apk");
}
最後に、格納された値に応じて設定クリッカブル:
@Override
public void onResume(){
super.onResume();
if (checkDownloadedFileExists("/download/app-debug.apk")) {
bt_install.setClickable(false);
}
}
てみてくださいボタン付き.setClickable(false); – AndroidRuntimeException
ダウンロードしたファイル名は、sqliteまたはapp preferencesのいずれかに保存する必要があります。条件付きでクリックを有効にします。 – Bernat
@AndroidRuntimeExceptionは動作しますが、オープンアクティビティが再び無効にならない場合:( – ahmed3