簡體   English   中英

從另一個活動調用覆蓋方法

[英]Call override method from another activity

我必須使用按鈕單擊從另一個活動中調用接口重寫方法。在GridActivity類中,我必須使用圖像按鈕。

如果單擊此按鈕,則需要調用其他活動接口重寫方法。

GridActivity3.java:

public class GridActivity3 extends Activity implements OnClickListener {

 ImageButton btn_home;

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grid3);

        btn_home = (ImageButton) findViewById(R.id.btn_home);

        btn_home.setOnClickListener(this);
     }

    @Override
    public void onClick(View v) {

    switch (v.getId()) {

    case R.id.btn_home:

     break;

     }
    }
   }

ArticleSelectedListener:

public interface ArticleSelectedListener {

    public void onArticleSelected(final int position, final String content);
}

MainActivity.java:

public class MainActivity extends ActionBarActivity implements OnTabChangeListener,ArticleSelectedListener {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 }

   @Override
    public void onArticleSelected(int position, String content)
    {
        if(position==0)
        {
            action_bar_hometext.setText(content);
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction ft = manager.beginTransaction();
            HomeFirstFragment newFragment = new HomeFirstFragment();
            ft.replace(R.id.realtabcontent, newFragment);
            ft.addToBackStack(null);
            ft.commit();
        }
     }

我不知道如何在單擊按鈕時從另一個活動中調用接口方法。任何人都可以幫助我。謝謝。

在您的MainActivity中,如下創建一個公共方法...

public void articleSelected(int position, String content)
  {
     if(position==0)
    {
        action_bar_hometext.setText(content);
        FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction ft = manager.beginTransaction();
        HomeFirstFragment newFragment = new HomeFirstFragment();
        ft.replace(R.id.realtabcontent, newFragment);
        ft.addToBackStack(null);
        ft.commit();
    }
  }

然后在Main活動中,用以下代碼替換所選的OnArticle中的代碼:

articleSelected(position,content);

然后使用相同的方法從GridActivity調用...

     MainActivity main= new MainActivity();
     main.articleSelected(0,"Home");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM