30/09/2018, 19:10

Android Xử lý lưu điểm với SharedPreferences và xếp hạng

Xem giúp mình đoạn code này với, ko chạy được.

package duaxe.canhquy.pecc4.duaxe;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class Main4Activity extends Activity {

    TextView txtvScore;
    TextView txtvName4;
    Button btnRetry;
    Button btnBackMenu;
    String name, ten, ngay;
    Integer score;
    Integer i, j, diem;
    String[] mangNgay;
    String[] mangTen;
    Integer[] mangDiem;
    SharedPreferences luutru;

   
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main4);
        txtvScore = (TextView) findViewById(R.id.textViewScore4);
        btnRetry = (Button) findViewById(R.id.buttonTryagain);
        btnBackMenu = (Button)findViewById(R.id.buttonBackMenu);
        txtvName4 = (TextView) findViewById(R.id.textViewName4);
       
        luutru = getSharedPreferences("luutruthongtin", Context.MODE_PRIVATE);
        xulyluudiem();
    }

    private void xulyluudiem() {
        Bundle bd4 = getIntent().getExtras();
        if (bd4 != null) {
            name = bd4.getString("name");
            score = bd4.getInt("score");
            txtvScore.setText("Score: " + score);
            txtvName4.setText(name);
        }
        if(luutru == null) {
            mangNgay = new String[]{"-", "-", "-", "-", "-", "-", "-", "-", "-"};
            mangTen = new String[]{"-", "-", "-", "-", "-", "-", "-", "-", "-"};
            mangDiem = new Integer[]{0, 0, 0, 0, 0, 0, 0, 0, 0};
        }else {
            String ten1 = luutru.getString("ten1", "");
            String ten2 = luutru.getString("ten2", "");
            String ten3 = luutru.getString("ten3", "");
            String ten4 = luutru.getString("ten4", "");
            String ten5 = luutru.getString("ten5", "");
            String ten6 = luutru.getString("ten6", "");
            String ten7 = luutru.getString("ten7", "");
            String ten8 = luutru.getString("ten8", "");

            String ngay1 = luutru.getString("ngay1", "");
            String ngay2 = luutru.getString("ngay2", "");
            String ngay3 = luutru.getString("ngay3", "");
            String ngay4 = luutru.getString("ngay4", "");
            String ngay5 = luutru.getString("ngay5", "");
            String ngay6 = luutru.getString("ngay6", "");
            String ngay7 = luutru.getString("ngay7", "");
            String ngay8 = luutru.getString("ngay8", "");

            String diem1 = luutru.getString("diem1", "");
            String diem2 = luutru.getString("diem2", "");
            String diem3 = luutru.getString("diem3", "");
            String diem4 = luutru.getString("diem4", "");
            String diem5 = luutru.getString("diem5", "");
            String diem6 = luutru.getString("diem6", "");
            String diem7 = luutru.getString("diem7", "");
            String diem8 = luutru.getString("diem8", "");

            mangNgay = new String[]{ten1, ten2, ten3, ten4, ten5, ten6, ten7, ten8,"-"};
            mangTen = new String[]{ngay1, ngay2, ngay3, ngay4, ngay5, ngay6, ngay7, ngay8, "-"};
            mangDiem = new Integer[]{Integer.parseInt(diem1),Integer.parseInt(diem2),
                    Integer.parseInt(diem3),Integer.parseInt(diem4),
                    Integer.parseInt(diem5),Integer.parseInt(diem6),
                    Integer.parseInt(diem7),Integer.parseInt(diem8),  5};
        }

        mangDiem[9] = score;
        mangTen[9] = name;
        for (i = 0; i <= 5; i++) {
            for (j = i + 1; j <= 5; j++) {
                if (mangDiem[i] < mangDiem[j]) {
                    diem = mangDiem[i];
                    mangDiem[i]=mangDiem[j];
                    mangDiem[j]=diem;
                    ten = mangTen[i];
                    mangTen[i] = mangTen[j];
                    mangTen[j] = ten;
                }
            }

        }

        SharedPreferences.Editor edit = luutru.edit();
        if(luutru!=null){
            edit.clear();
        }else {
            edit.putString("ten1", String.valueOf(mangTen[0]));
            edit.putString("ten2", String.valueOf(mangTen[1]));
            edit.putString("ten3", String.valueOf(mangTen[2]));
            edit.putString("ten4", String.valueOf(mangTen[3]));
            edit.putString("ten5", String.valueOf(mangTen[4]));
            edit.putString("ten6", String.valueOf(mangTen[5]));
            edit.putString("ten7", String.valueOf(mangTen[6]));
            edit.putString("ten8", String.valueOf(mangTen[7]));
            edit.putString("ten9", String.valueOf(mangTen[8]));

            edit.putString("ngay1", String.valueOf(mangNgay[0]));
            edit.putString("ngay2", String.valueOf(mangNgay[1]));
            edit.putString("ngay3", String.valueOf(mangNgay[2]));
            edit.putString("ngay4", String.valueOf(mangNgay[3]));
            edit.putString("ngay5", String.valueOf(mangNgay[4]));
            edit.putString("ngay6", String.valueOf(mangNgay[5]));
            edit.putString("ngay7", String.valueOf(mangNgay[6]));
            edit.putString("ngay8", String.valueOf(mangNgay[7]));
            edit.putString("ngay9", String.valueOf(mangNgay[8]));

            edit.putString("diem1", String.valueOf(mangDiem[0]));
            edit.putString("diem2", String.valueOf(mangDiem[1]));
            edit.putString("diem3", String.valueOf(mangDiem[2]));
            edit.putString("diem4", String.valueOf(mangDiem[3]));
            edit.putString("diem5", String.valueOf(mangDiem[4]));
            edit.putString("diem6", String.valueOf(mangDiem[5]));
            edit.putString("diem7", String.valueOf(mangDiem[6]));
            edit.putString("diem8", String.valueOf(mangDiem[7]));
            edit.commit();
        }
    }
}
Truong Pham viết 21:25 ngày 30/09/2018

Bạn nên nói thêm là có lỗi gì không, lỗi ở phần nào, không chạy được là như thế nào?

Lecanhquy viết 21:23 ngày 30/09/2018
Hình như là lỗi này

"produce ‘java.lang.NullPointerException’

Lecanhquy viết 21:23 ngày 30/09/2018

SharedPreferences.Editor edit = luutru.edit();

Method invocation 'luutru.edit()' may produce 
'java.lang.NullPointerException' less... 
(Ctrl+F1)



  This inspection analyzes method control and data flow to report possible 
  conditions that are always true or false, expressions 
  whose value is statically proven to be constant, and situations that can 
  lead to nullability contract violations.


  Variables, method parameters and return values marked as @Nullable 
  or @NotNull are treated as nullable (or not-null, 
  respectively) and used during the analysis to check nullability 
  contracts, e.g. report possible NullPointerException errors.


  More complex contracts can be defined using @Contract 
  annotation, for example:


  @Contract("_, null -> null") — method returns 
  null if its second argument is null

@Contract("_, null -> null;
_, !null -> !null") — method returns null if its second
argument is null and not-null otherwise
@Contract(“true ->
fail”) — a typical assertFalse method
which throws an exception if true is passed to it

  The inspection can be configured to use custom @Nullable

@NotNull annotations (by default the ones from 
annotations.jar will be used)
Quân viết 21:24 ngày 30/09/2018

Thất bại của … copy logcat khi bị crash lên chứ cha nội, lôi cái javadoc copy lên đây làm gì. Cái ấy thiếu gì, chỗ nào chả có

Bài liên quan
0