【问题标题】:Start first Activity with onActivityResult [closed]使用 onActivityResult 启动第一个 Activity [关闭]
【发布时间】:2013-12-21 15:03:09
【问题描述】:

我想打开另外两个活动,然后我想在活动 A 中播放活动 C 中的选定歌曲。在活动 A 我打开一个活动 B 并在那里我打开一个 Activity C。 我想在活动 C 中播放一首选定歌曲。

但我不明白。怎么了? 非常感谢,Vinzenz :)


这是活动A:

LinearLayoutBrowse.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
    Intent i = new Intent(getApplicationContext(), BrowseActivity.class);
        startActivityForResult(i, 100); 

            final Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
              @Override
              public void run() {
                  mDrawerLayout.closeDrawers();
              }
            }, 300);

        }
    });

@Override
protected void onActivityResult(int requestCode,
                                 int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == 100){
         currentSongIndex = data.getExtras().getInt("songIndex");

         //drawerclose


         // play selected song
         playSong(currentSongIndex);

    }

}

这是活动B:

      LinearLayoutTitel.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            myViewFlipper.showPrevious();
            Intent i = new Intent(BrowseActivity.this, AllSongs.class);
            startActivityForResult(i,  100);

        }
    });


}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // this is the data that comes back from Activity C when Activity C calls finish()

    // set the data as the result
    setResult(???);

    // then you can finish
    finish();
}

这是活动C:

lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // getting listitem index
            int songIndex = position;

            // Starting new intent
            Intent in = new Intent(getApplicationContext(),
                    MainActivity.class);


            // Sending songIndex to BrowseActivity
            in.putExtra("songIndex", songIndex);

            setResult(100, in);
            // Closing PlayListView
            finish();
        }

【问题讨论】:

    标签: android eclipse android-intent set


    【解决方案1】:

    在第三个Activity 中,Intent 构造函数应该为空。而不是

    Intent in = new Intent(getApplicationContext(), MainActivity.class);
    

    应该是

    Intent in = new Intent();
    

    否则,您将创建MainActivity 的新实例,它将调用它的onCreate()

    【讨论】:

      猜你喜欢
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 2014-05-15
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      相关资源
      最近更新 更多