Я просто попробовал это, и это сработало для меня.
Мое единственное отличие заключалось в том, что я использовал & lt;> для from и для:
from = "<email1@dal.ca>"
to = "<email2@gmail.com>"
и моей почты управление было другим, я использовал
control=list(smtpServer="ASPMX.L.GOOGLE.COM"))
Одним из способов достижения желаемого поведения является использование интерфейса , метод которого вызывается внутри MenuAdapter
.
Создайте интерфейс, подобный следующему:
public interface ActivityChangedListener {
public void onActivityChanged();
}
Этот интерфейс должен быть реализован классом, имеющим ссылку на mDrawerLayout
, который вы хотите закрыть. В этом случае мы могли бы заставить Activity
реализовать метод следующим образом:
public class MainActivity extends AppCompatActivity implements
ActivityChangedListener
public void onActivityChanged(){
mDrawerLayout.close();
}
Внутри вашего MenuAdapter
вы должны добавить следующее:
public class MenuAdapter extends BaseExpandableListAdapter {
ActivityChangedListener activityChangedListener
public MenuAdapter(Context context, ArrayList<MainMenu> arraylist, ActivityChangedListener acl) {
this.context = context;
this.arraylist = arraylist;
// You could use a setter for this, but care because acl could be null if not set in the right order
this.activityChangedListener = acl;
}
// Now you have to call the listener inside the onClick method in every statement where you switch to a new activity
tv_state.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (arraylist.get(i).getSUB_MODULE_LIST().get(i1).getMLINK_NAME().equals("Daily Work Report")) {
activityChangedListener.onActivityChanged();
context.startActivity(new Intent(context, DailyWorkReportListActivity.class));
} else if (arraylist.get(i).getSUB_MODULE_LIST().get(i1).getMLINK_NAME().equals("Employee Contacts")) {
activityChangedListener.onActivityChanged();
context.startActivity(new Intent(context, EmployeeContactsActivity.class));
}
Единственное, что осталось заключается в редактировании вызова конструктора из MenuAdapter
и передачи экземпляра ActivityChangedListener
, в этом случае это будет this
, потому что наш экземпляр Activity
реализует интерфейс:
MenuAdapter obj_adapter = new MenuAdapter(MainActivity.this, arrayList, this);
Рекомендуется использовать интерфейс для сохранения абстракции, расширяемости и прозрачности.