Это мой первый 'le git проект' в android и java. Это простой счетчик с дополнительными функциями [большинство из которых еще предстоит добавить]. Я застрял с проблемой, когда я не могу сохранить счет, когда пользователь закрывает приложение. Предположим, что если кто-то нажал до 50, а затем просто закрыл приложение (не просто закрыть, а ЗАКРЫТЬ все приложение), поэтому при повторном открытии я хочу, чтобы оно продолжалось с 50.
Я знаю, что могу сделать это с поделился своими предпочтениями, но я попытался сделать это сам и просмотрел несколько видео на YouTube, но безрезультатно. Это просто не будет работать, или приложение вылетает.
Если кто-то может взглянуть на мой код и помочь мне добавить требуемый код общего доступа, это было бы удивительно, и я также планирую добавить настройка страницы / действия из меню параметров, в котором я хочу сохранить переключение светлой / темной темы.
package com.example.tapcounter;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
public class MainActivity extends AppCompatActivity {
private AdView mAdView ;
private int counter = 0;
TextView txt;
Button btnU,btnT,btnR;
Switch sw;
private static long back_pressed;
//Double Tap Exit
@Override
public void onBackPressed()
{
if (back_pressed + 2000 > System.currentTimeMillis()) super.onBackPressed();
else Toast.makeText(getBaseContext(), "Press once again to exit!", Toast.LENGTH_SHORT).show();
back_pressed = System.currentTimeMillis();
}
//Inflater for Menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu,menu);
return true;
}
//Menu
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case R.id.menui1:
Intent aboutIntent = new Intent(MainActivity.this, SettingsActivity.class);
startActivity(aboutIntent);
break;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713");
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
btnT = findViewById(R.id.tapbtn);
btnR = findViewById(R.id.resetbtn);
btnU = findViewById(R.id.undobtn);
sw = findViewById(R.id.swch);
txt = findViewById(R.id.txtv);
;
//TAP Button
btnT.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
counter ++;
txt.setText(Integer.toString(counter));
}
});
//UNDO Button
btnU.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(counter > 0) {
counter--;
txt.setText(Integer.toString(counter));
}
else{
return;
}
}
});
//RESET Button
btnR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
counter = 0;
txt.setText(Integer.toString(counter));
}
});
//Lock Switch
sw.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(sw.isChecked()) {
btnR.setEnabled(false);
btnT.setEnabled(false);
btnU.setEnabled(false);
}
else{
btnR.setEnabled(true);
btnT.setEnabled(true);
btnU.setEnabled(true);
}
}
});
}
}
Не знаю, нужен ли xml код, но вот вам go .
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@color/BG"
tools:context=".MainActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/MainLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/BG"
tools:context=".MainActivity">
<Button
android:id="@+id/undobtn"
android:layout_width="103dp"
android:layout_height="70dp"
android:text="@string/undobtnS"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.051"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tapbtn"
app:layout_constraintVertical_bias="1.0" />
<Button
android:id="@+id/resetbtn"
android:layout_width="100dp"
android:layout_height="70dp"
android:text="@string/restbtnS"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tapbtn"
app:layout_constraintVertical_bias="1.0" />
<Switch
android:id="@+id/swch"
android:layout_width="102dp"
android:layout_height="70dp"
android:layout_marginTop="39dp"
android:text="@string/swchS"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.948"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tapbtn"
app:layout_constraintVertical_bias="0.748" />
<TextView
android:id="@+id/txtv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txtvS"
android:textSize="130sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/tapbtn"
app:layout_constraintVertical_bias="0.325" />
<Button
android:id="@+id/tapbtn"
android:layout_width="415dp"
android:layout_height="450dp"
android:layout_marginTop="92dp"
android:alpha="0.1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
app:adSize="SMART_BANNER"
app:adUnitId="ca-app-pub-3940256099942544/6300978111"
app:layout_constraintBottom_toTopOf="@+id/tapbtn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</com.google.android.gms.ads.AdView>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>