поместите OnItemClickListener в раскрывающийся список AutoCompleteTextView и передайте намерение, получив позицию, но не удалось

#java #android #android-intent

#java #Android #android-намерение

Вопрос:

Я хочу передать свое намерение из MainActivity классов в Java, получив позицию выпадающего списка и поместив onItemClickListener в каждый элемент, чтобы получить его позицию, и для каждого элемента есть намерение, и в этом 3 классе я должен показывать статические данные, listview но приложение вылетает при каждом запуске, и я не могунайдите ошибку после ее отладки.

Это мой код:

 final ArrayAdapter<String> adapterSearch = new ArrayAdapter<String>(context,R.layout.autocompletetextview_dropdown_list,
            R.id.textList,searchItem);
    aCTV_Search.setThreshold(1);
    aCTV_Search.setDropDownAnchor(R.id.aCTV_Search);
    aCTV_Search.setAdapter(adapterSearch);

    //set onTouchListener to show all the dropdown list by a touch on search bar

    aCTV_Search.setOnTouchListener(new View.OnTouchListener() {
        @SuppressLint("ClickableViewAccessibility")
        @Override
        public boolean onTouch(View v, MotionEvent event) {

         
            if (aCTV_Search.length() >= 0) {
                if (!aCTV_Search.getText().toString().equals(""))
                    adapterSearch.getFilter().filter(null);
                aCTV_Search.showDropDown();
                Log.d(TAG, "onTouch: dropdown");

     //setting onClickListener on actv list and adding a static item to it as a Header.

                aCTV_Search.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        if(position == 0){
                            Toast.makeText(context, "It is header of the list", Toast.LENGTH_SHORT).show();
                        }else if (position == 1){
                            Intent intent = new Intent(Listview_convert_Activity.this, Medicine.class);
                            Listview_convert_Activity.this.startActivity(intent);
                            finish();
                        }else  if (position == 2){
                            Intent intent = new Intent(Listview_convert_Activity.this, Malady.class);
                            Listview_convert_Activity.this.startActivity(intent);
                            finish();
                        }else  if (position == 3) {
                            Intent intent = new Intent(Listview_convert_Activity.this, Doctor.class);
                            Listview_convert_Activity.this.startActivity(intent);
                            finish();
                        }
                    }
                });
                  
            }
                return false;
            }
    });
  

Это мой оставшийся Java-код:

 public class Medicine extends ListActivity {

private Context context;
private ImageView imgBacks;
private String[] Doctor = {"Dr. Olga Conner","Dr. Violet Stone","Dr. Clyde Moore","Dr. Lewis Vasquez","Dr. Olivia Cunningham","Dr. Jim Conner"};
private ListView listDoctor;
private ImageView imgBack;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.acvtlist_layout);

    imgBack = findViewById(R.id.imgBacks);
    listDoctor = findViewById(R.id.actvList);
    ArrayAdapter adapter_aCTV = new ArrayAdapter(this,R.layout.row_actvlist,R.id.tv_actvListName);
    listDoctor.setAdapter(adapter_aCTV);

    listDoctor.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(com.example.rough_work.Prescription.Class.Medicine.this, Listview_convert_Activity.class);
            com.example.rough_work.Prescription.Class.Medicine.this.startActivity(intent);

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
    imgBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(com.example.rough_work.Prescription.Class.Medicine.this,Listview_convert_Activity.class);
            com.example.rough_work.Prescription.Class.Medicine.this.startActivity(intent);
        }
    });
}
  

}

Комментарии:

1. вы должны поместить activity в startActivity() метод, а не в простой класс Java

2. вместо метода startActivity() я должен использовать метод типа simplejavaclass