0

TabHost レイアウトを失うことなく、Parent(TabActivity) の 1 つでメソッドを呼び出す ListActivity から特定のメソッドを呼び出す

TabHost 1.PlayingActivity 2.AlbumActivity 内に 2 つのアクティビティがあります。

AlbumActivty 内のボタンをクリックすると、LIstActivity にジャンプします -> ListActivity 内の Item をクリックすると、タブ レイアウトを失うことなく PlayingActivity 内のメソッドの 1 つに戻りたいです。

これらを使用してActivity n固有のメソッドを呼び出すことでタスクを達成できます

ListActivity でアイテムをクリックすると、PlayingActivity の特定のメソッドが呼び出されます

Class SongList extends ListActivty
{
  public void onCreate(Bundle savedInstanceState)
   {
     //implemented list adapter-ls
      listadapter. . . .

      ls.setOnItemClickListener(New View.onItemClickListener)
        {
         public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) 
             {
                    int songIndex=position; 
        Intent i=new Intent(getApplicationContext(),AlbumActivity.class);
            i.putExtra("methodName", "myMethod");
            i.putExtra("index", songIndex);
            startActivity(i);
              }
        }
    }

}

TabHost の下で PlayingActivity と AblumActivity をホストする MainActivity

public class MainActivity extends TabActivity {

 private static final String NOW_PLAYING = "Playing";
    private static final String ALBUM = "Album";

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

        TabHost tabHost = getTabHost();

        // Playing Tab
        TabSpec PlayingSpec = tabHost.newTabSpec(NOW_PLAYING);
        // Tab Icon
        PlayingSpec.setIndicator(NOW_PLAYING, getResources().getDrawable(R.drawable.icon_now_playing));
       Intent PlayingIntent = new Intent(this, PlayingActivity.class);
        // Tab Content
        PlayingSpec.setContent(PlayingIntent);

        // Album Tab
        TabSpec AlbumSpec = tabHost.newTabSpec(ALBUM);
        AlbumSpec.setIndicator(ALBUM, getResources().getDrawable(R.drawable.icon_music));
        Intent AlbumIntent = new Intent(this, AlbumActivity.class);
        AlbumSpec.setContent(AlbumIntent);


        // Adding all TabSpec to TabHost
        tabHost.addTab(PlayingSpec); // Adding Playing tab
        tabHost.addTab(AlbumSpec); // Adding Album tab
}

}

PlayingActivity では、特定のメソッド (playSong()) が呼び出されます。

class PlayingActivity extends Activity
{
   public void onCreate(Bundle savedInstanceState)
   {
    }
   protected void onNewIntent(Intent intent) {
   super.onNewIntent(intent);
   String index=intent.getStringExtra("index");
   if(intent.getStringExtra("methodName").equals("myMethod")){
      playSong(Integer.parseInt(index));
   }
}
   private void playSong(int i)
   { 
   }
} 

これで、PlayingActivity の特定のメソッドを何らかの方法で呼び出すことができる Catch iz が、TabHost の下にある Playing Activity が TabLayout を失います

Playing Activity を保存して TabLayout から失う方法はありますか??

4

1 に答える 1

0

ちょうどそれを発見しました。少しのロジックで時間を節約できました。

追加する

finish();

アクティビティ内ですべての作業が行われます。

于 2012-08-21T12:01:59.773 に答える