다음과 같은 주요 응용 프로그램 클래스가 있고 같은 클래스 또는 다른 클래스에서 메서드를 호출하는 한 줄을 변경하는 방법을 알고 싶습니다. 반면 다른 호출자는 여전히 호출합니다 활동. 지금 내가 이것을 가지고안드로이드 - 클래스 대신 SDK를 호출
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { AboutActivity.this.getString(R.string.feedback_email) });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, AboutActivity.this.getString(R.string.feedback_subject));
emailIntent.setType("plain/text");
startActivity(emailIntent);
:
adapter.add(createTextItem(R.string.info_about, AboutActivity.class));
내가 예를 들어이 작업을 수행하는 방법을 문의하고 싶습니다 : 문제
public class InfoActivity extends GDListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.info_activity_title);
ItemAdapter adapter = new ItemAdapter(this);
adapter.add(createTextItem(R.string.info_about, AboutActivity.class));
adapter.add(createTextItem(R.string.info_terms, TermsActivity.class));
adapter.add(createTextItem(R.string.info_privacy, PrivacyActivity.class));
setListAdapter(adapter);
}
private TextItem createTextItem(int stringId, Class<?> klass) {
final TextItem textItem = new TextItem(getString(stringId));
textItem.setTag(klass);
return textItem;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
final TextItem textItem = (TextItem) l.getAdapter().getItem(position);
Intent intent = new Intent(InfoActivity.this, (Class<?>) textItem.getTag());
startActivity(intent);
}
}
라인 : 여기에 코드입니다 AboutActivity의 onCreate 메소드에 있지만, 자연스럽게 활동 내에서이 기능 (이메일 전송)을 가질 이유가 없습니다. 대신 그것은 단지 그대로 달릴 수 있습니다. 그럼 내가 어떻게 할 수 있니?
감사합니다.
다른 두 라인 :
adapter.add(createTextItem(R.string.info_terms, TermsActivity.class));
adapter.add(createTextItem(R.string.info_privacy, PrivacyActivity.class));
들은 기능면에서 동일하게 유지 할 수 있습니다. 이 질문은 (앞서 질문과 대답있어)이 하나에서 추가 사항입니다 : 당신이 이것에 대해가는 것을 선택 이제까지 트릭이 실제로 결정이 수행 할 작업에 대한 만들고 이동하는 방법
Android - call method instead of class - sdk
굉장한 것들! :-) getIntentForString() 메소드에 대한 예제를 주시겠습니까? switch 문()과 각 경우마다 새로운 의도 (InfoActivity.this, AboutActivity.class)를 생각했습니다. 메일 방법을 호출하고 싶다면 다른 수업을 들어야합니까? 또는 동일한 클래스 내에서 메소드를 호출하거나 단순히 다른 클래스를 만들 수 있지만 자연스럽게 활동에서 상속받지 않는 클래스 (이 경우 GDListActivity)를 만들 수 있습니까? – SpacialWise
답변이 업데이트되었습니다. –
대단하군요! 감사합니다 커티스! 더 많은 점수를 남길 수있는 방법이 있습니까? 나는이 사이트가 어떻게 작동하는지 모르겠다. 대답을 수락했다. – SpacialWise