如何使用 set 和 get 方法将字符串从一个 activity 中的 autoCompleteTextView 传输到其他人

how to transfer string from autoCompleteTextView in one activity to others using set and get methods

[帮助]

请帮助我,我想做的是,从 autoCompleteTextView 获取字符串数据并设置它,然后在其他 activity

中获取字符串数据

这是我的 AutoCompleteTextView 代码:

//autocomplete
    //Creating the instance of ArrayAdapter containing list of language names
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>
            (this,android.R.layout.select_dialog_item,dapilAuto);
    //Getting the instance of AutoCompleteTextView
    final AutoCompleteTextView actv= (AutoCompleteTextView)findViewById(R.id.nama_dapil);
    actv.setThreshold(1);//will start working from first character
    actv.setAdapter(adapter);//setting the adapter data into the AutoCompleteTextView
    actv.setTextColor(Color.BLACK);
    //ketika di pilih autocompletenya
    actv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String selection = (String)parent.getItemAtPosition(position);
            //String selection = actv.getText().toString();
            Dapil dapil = new Dapil(selection);
            dapil.setName_dapil(selection);

        }
    });

这是我的获取和设置 class :

 String name_dapil;



    public Dapil(){

    }

    public Dapil(String name_dapil){
        this.name_dapil = name_dapil;

    }

    public String getName_dapil() {
        return name_dapil;
    }
    public void setName_dapil(String name_dapil) {
        this.name_dapil = name_dapil;
    }

这就是我获取字符串数据并将其实施到云 firestore 中以获取文档 ID 的方式:

     Dapil dapil = new Dapil();
     String mDapil = dapil.getName_dapil();

     loadJumlahKursi(mDapil);




 private void loadJumlahKursi(String mDapil){

        DocumentReference kursiRef = firestoreDB.collection("perhitungansuara").document(mDapil);
        kursiRef.get()
                .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if(task.isSuccessful()){
                            DocumentSnapshot doc = task.getResult();
                            StringBuilder fields = new StringBuilder("");
                            fields.append("Jumlah Kursi: ").append(doc.get("jumlah_kursi"));
                            mJumlahKursi.setText(fields.toString());
                        } else {
                            Log.d(TAG, "Gagal mendapatkan data:  ", task.getException());
                        }

                    }
                });
    }

这就是问题所在

02-06 18:18:27.700 5902-5902/com.example.erlangga.suaraku E/AndroidRuntime:致命异常:main 进程:com.example.erlangga.suaraku,PID:5902 java.lang.RuntimeException:无法启动 activity ComponentInfo{com.example.erlangga.suaraku/com.example.erlangga.suaraku.HasilActivity}:java.lang.NullPointerException:提供的文档路径不能为空。 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2219) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269) android.app.ActivityThread.access800 美元(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5045) 在 java.lang.reflect.Method.invokeNative(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 在 dalvik.system.NativeStart.main(本机方法) 原因:java.lang.NullPointerException:提供的文档路径不能为空。 在 com.google.android.gms.common.internal.zzbq.checkNotNull(来源不明) 在 com.google.firebase.firestore.CollectionReference.document(来源不明) 在 com.example.erlangga.suaraku.HasilActivity.loadJumlahKursi(HasilActivity.java:157) 在 com.example.erlangga.suaraku.HasilActivity.onCreate(HasilActivity.java:81) 在 android.app.Activity.performCreate(Activity.java:5231) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2163) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269) android.app.ActivityThread.access800 美元(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5045) 在 java.lang.reflect.Method.invokeNative(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 在 dalvik.system.NativeStart.main(本机方法)

您遇到以下异常:

java.lang.NullPointerException: Provided document path must not be null

因为您要将值为 nullmDapil 对象传递给 document() 方法。原因是下面这行代码:

dapil.getName_dapil()

returns null.

如果您想在活动之间传递 mDapil,请使用 IntentHere是怎么做到的。