У меня есть ящик, который скользит слева в моей деятельности. Обычно я вызываю startActivityForResult
с кнопки, и это нормально работает нормально. Кнопка создается в моей деятельности, поэтому startActivityForResult
и onActivityResult работают нормально.Вызов startActivityForResult из другого класса?
Поскольку я реализовал ящик и вызываю startActivityForResult
(который загружает камеру) из метода selectItem, камера не запускается. Я думаю, причина в том, что startActivityForResult
и onActivityResult
должны быть в одном классе для работы механизма.
Как я могу позвонить startActivityForResult
из своего ящика и отправить результат на внешнюю активность.
Заранее спасибо.
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
Log.e(TAG, "in onActivityResult");
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
Log.e(TAG, "result ok");
}
......
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
String rowTitle = view.getTag().toString();
selectItem(position, rowTitle);
}
}
/** Swaps fragments in the main content view */
private void selectItem(int position, String rowTitle) {
// Highlight the selected item, update the title, and close the drawer
mDrawerList.setItemChecked(position, true);
//setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
//"SIGN IN/OUT", "SEND OUTSTANDING TRANSACTIONS", "SIGNOUT MANUALLY", "LOGS", "ASSESSMENTS"
if(rowTitle.equalsIgnoreCase("SIGN IN/OUT")){
Log.e(TAG, "onclicked sign in");
Intent intent = new Intent("com.carefreegroup.rr3.SCAN");
intent.putExtra("SCAN_MODE","QR_CODE_MODE");
startActivityForResult(intent, 0);
}
. EDIT1
adapter2 = new MySimpleArrayAdapter(this, lst2);
mDrawerList.setAdapter(adapter2);
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
Основы java (или даже OOP) ... startActivityForResult - это метод некоторого класса ... вам нужен экземпляр этого класса, чтобы назвать его ... где проблема? – Selvin
@Selvin Я создаю экземпляр в своей работе, и я вызываю startActivityForResult с помощью DrawerItemClickListener, который является другим классом. onActivityResult не вызывается как в другом классе – turtleboy
Вы вызвали setResult() и finish() в открывшемся действии? –