如何使用 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
因为您要将值为 null
的 mDapil
对象传递给 document()
方法。原因是下面这行代码:
dapil.getName_dapil()
returns null
.
如果您想在活动之间传递 mDapil
,请使用 Intent
。 Here是怎么做到的。
[帮助]
请帮助我,我想做的是,从 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
因为您要将值为 null
的 mDapil
对象传递给 document()
方法。原因是下面这行代码:
dapil.getName_dapil()
returns null
.
如果您想在活动之间传递 mDapil
,请使用 Intent
。 Here是怎么做到的。