Android كيفية تحديد معرف الإكمال التلقائي لعرض النص داخل وظيفة تجاوز onitemclick
-
02-01-2020 - |
سؤال
لدي ثلاثة autoCompleteTextView
مربع كما home
, work
, other
.
لذا، في مربع الإكمال التلقائي بالمنزل، أحصل على بيانات من الخادم وحدد عنصرًا واحدًا وهذا العنصر الذي قمت بتخزينه فيه home_latlong
خيط.وبالمثل، لا بد لي من الحصول على قيمة من أعمال الإكمال التلقائي الأخرى التي أقوم بتخزين تلك القيمة في سلسلة أخرى تسمى home_latlong
.يظهر أدناه رمز onItemClick
تجاوز الوظيفة حيث سأخزنها home_latlong
أو work_latlong
.
`
ontemClick(AdapterView<?> adapterView, View view,
int position, long id) {
System.out.println("POSITION ="+position);
for (int i = 0; i < latlong.size(); i++) {
if(i==position){
home_latlong=latlong.get(i);
System.out.println("ARRAY"+latlong.get(i));
}
}
}`
لذا المشكلة هي أنني غير قادر على التمييز عندما أقوم بالتخزين home_latlong
ومتى يتم تخزينها work_latlong
.حاولت مع معرف autocompletetextview
لكنه لم يساعد في هذه الوظيفة.
المحلول
لقد قمت بحلها باستخدام فئة داخلية مجهولة،
actv1 = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
actv1 .setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int position,
long id) {
// TODO Auto-generated method stub
for (int i = 0; i < latlong.size(); i++) {
if (i == position) {
home_latlong = latlong.get(i);
System.out.println("ARRAY" + latlong.get(i));
}
}
}
});
بالمثل ل work_latlong
كان لدي فئة داخلية أخرى مجهولة حتى أتمكن من الحصول على عرض الإكمال التلقائي الذي قمت بالنقر فوقه.
نصائح أخرى
تحقق من الوثائق ل AdapterView.OnItemClickListener
:
public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id)
حدود
- الأبوين:AdaptorView حيث حدثت النقرة.
- منظر:العرض الموجود داخل عرض المحول الذي تم النقر عليه (سيكون هذا عرضًا يوفره المحول)
تحتاج إلى استخدام أولاً المعلمة (AdapterView) لتحديد AutocompleteTextView
.