7

ダイアログボックスを生成するImageButtonを備えたカスタムタイトルバーがあり、リストアイテムがダイアログボックスから選択され、タイトルバーとマップがあるときに、マップ(別のクラス)に場所(itemizedOverlayを配置)を表示できるようにしたい同じ文脈。コンテキストを使用して別のクラスのメソッドを呼び出すことができることをどこかで読みました。どうすればそうできますか?

public class MyTitleBar extends RelativeLayout{

private Context context;


public MyTitleBar(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.context = context;
}

@Override
protected void onFinishInflate() {

    super.onFinishInflate();

    initViews();
}

// set up all the buttons  & clicks
private void initViews() {

    final ImageButton listImgBtn = (ImageButton) findViewById(R.id.more);
    final CharSequence [] listItems = {"Elderly","Events"};

    listImgBtn.setOnClickListener(new  View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(context instanceof UserHome)
            {
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setTitle("List");
                builder.setItems(listItems, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int item) {
                    // TODO Auto-generated method stub
                    if(item == 0)
                    {
                        //show location of elderly
                       //DisplayLocation()

                    }
                    else if(item == 1)
                    {
                        //show location of events
                    }
                }
            });
            AlertDialog alert = builder.create();
            alert.show();
          }
        }
    });
4

1 に答える 1

26

私はこれを次のように行うことができるようです:

UserHome userhome = (UserHome)context;
userhome.DisplayLocation();

UserHome アクティビティの DisplayLocation() です。単純。

于 2012-08-10T04:29:23.567 に答える