#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()
метод, а не в простой класс Java2. вместо метода startActivity() я должен использовать метод типа simplejavaclass