アプリケーションにタイトル バーがあります。また、タイトル バーには 1 つのボタンがあります。そのボタンをクリックすると、情報アクティビティが表示されます。今、私が知る限りandroid:onClick
、xml が に設定されているアクティビティ内のパブリック メソッドの参照が必要setContentView()
です。ここで、そのボタン クリックのロジックはアプリケーション全体で同じであるため、メソッドで 1 回だけ言っshowInfoScreen(View view)
て、そのボタンonClick
属性に配置します。そして、どこにでも同じメソッドを書く必要はありません。出来ますか?
質問する
258 次
3 に答える
5
もちろん可能です。クラスを作成してActivity
から、すべてのActivity
s にそれを拡張させます。例えば:
public abstract class BaseActivity extends Activity {
@Override
public void setContentView( int layoutResID ) {
super.setContentView( layoutResID );
findViewById(R.id.button).setOnClickListener(new OnTitleBarButtonClickListener());
}
private void showInfoScreen() {
// Show the info screen
}
private class OnTitleBarButtonClickListener implements OnClickListener {
@Override
public void onClick(View v) {
showInfoScreen();
}
}
}
次に、すべての派生s が の代わりにActivity
拡張されます。BaseActivity
Activity
このようにすることのActivity
利点は、このクラスを拡張するすべてのものが自動的にこの機能を取得することです。派生クラスでのコーディングは必要ありませんBaseActivity
。. Activity
すべてのs が持つ唯一の契約は、R.id.button
そのコンテンツ内で名前を付けた id を持つことです。
于 2012-04-09T07:01:15.220 に答える
1
onclick
インフォスクリーンを表示したいすべてのアクティビティに書き込む必要があると思います。
ただし、すべてのアクティビティでOnClick
A メソッドを呼び出すだけです....showInfoScreen(View view)
そして、クラス Like を作成する必要がShowInfo
あります...そして1つの静的メソッドがあります...
public class ShowInfo{
public static void showInfoScreen(View view,Context c){
//now dispay info here
}
}
ShowInfo.showInfoScreen(v,YourClassName.this)
あなたのメソッドに書いてくださいonClick()
....
于 2012-04-09T06:56:34.907 に答える
0
Vinayak.B
提案されたものの例は次のとおりです。
public class yourAppUtils {
public static void yourMethod() {
// Do stuff
}
}
于 2012-04-09T06:55:46.807 に答える