私は私の主なアプリケーションクラスを次のようにしています。私は、同じクラスまたは別のクラスからメソッドを呼び出すように1行を変更する方法を知りたいと思います活動。今、私はこれを持ってAndroid - クラス - 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));
は、彼らは、機能の面で同じまますることができます。この質問は、この1(私が以前に尋ねたと答えてしまった)からの補遺です:
あなたがこれについて行くことを選択し、これまで、トリックは実際にするときに何をすべきかについての意思決定を移動することですどのようにAndroid - call method instead of class - sdk
恐ろしいもの! :-) getIntentForString()メソッドの例を挙げてください。私はswitch文()とそれぞれの場合について考えていました:new Intent(InfoActivity.this、AboutActivity.class);メールメソッドを呼びたいと思ったら別のクラスに入る必要がありますか?または同じクラス内からメソッドを呼び出すことも、別のクラスを作成することもできますが、自然にアクティビティを継承しないクラス(この場合はGDListActivity)を作成できますか? – SpacialWise
これに対処するための答えが更新されました。 –
それは素晴らしいです!ありがとうKurtis!あなたにもっと多くのポイントを残す方法はありますか?私はこのサイトがどのように動作するかわかりません。私は答えを受け入れました.. – SpacialWise