1

viewPager4 片段活动

如果我单击播放短声音的文本,一个接一个然后有时媒体播放器挂起并且不播放任何声音。但是,如果我能够销毁活动并使用操作栏中的刷新按钮重新创建相同的活动,我将能够再次单击声音。

那么在代码中写什么R.id.item2呢?

或者有没有其他方法可以连续点击这些文本的短音而不会出现任何挂起问题?

以下是参考代码:

public class module1 extends FragmentActivity {
static Context con;
static int length = 0;
ViewPager mViewPager;
SectionsPagerAdapter mSectionsPagerAdapter;
static MediaPlayer mediaplayer, mediaplayert, m;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    con = this;
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);       
}   

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.mains, menu);
    //  Just .main into .mains [created new for different behavior of Action Bar]       
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == R.id.item1) {
        Intent in = new Intent(Intent.ACTION_VIEW,
                Uri.parse("http://www.google.com"));
        startActivity(in);
    }   
    if (item.getItemId() == R.id.item2) {


        //what should i write here? to destroy and recreate the same fragment activity again.
        //Problem: After clicking fast on one after another text links, mediaplayert hangs and doesnt play
        //Solution: exit app destroy and reopen, then mediaplayer works fine... 
        //SO, what to write here? kindly help!


        }

        return super.onOptionsItemSelected(item);
}          







public class SectionsPagerAdapter extends FragmentPagerAdapter {
    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int arg0) {
        Fragment ff = new DummySectionFragment1();
        switch (arg0) {
        case 0:
            ff = new DummySectionFragment1();
            break;
        }
        Bundle args = new Bundle();
        args.putInt(DummySectionFragment1.ARG_SECTION_NUMBER, arg0 + 1);
        ff.setArguments(args);
        return ff;
    }

    @Override
    public int getCount() {
        return 1;
    }

    @Override
    public CharSequence getPageTitle(int arg0) {
        Locale l = Locale.getDefault();
        switch (arg0) {
        case 0:
            return getString(R.string.title_section27).toUpperCase(l);          
        }
        return null;
    }
}

public static class DummySectionFragment1 extends Fragment {
    public static final String ARG_SECTION_NUMBER = "section_number";
    public DummySectionFragment1() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.m01set01, container, false);
        // Genius Shot by Stupid vIC//

                    TextView Text = (TextView) rootView.findViewById(R.id.textView2);
                    Text.setOnClickListener(new View.OnClickListener() {



                        @Override
                        public void onClick(View arg0) {

                            mediaplayert = MediaPlayer.create(MainActivity.con,
                                    R.raw.sound1);
                            mediaplayert.start();

                        }
                    });







                    TextView Text1 = (TextView) rootView.findViewById(R.id.textView4);
                    Text1.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                            mediaplayert = MediaPlayer.create(MainActivity.con,
                                    R.raw.sound2);
                            mediaplayert.start();

                        }
                    });

                    TextView Text2 = (TextView) rootView.findViewById(R.id.textView6);
                    Text2.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                            mediaplayert = MediaPlayer.create(MainActivity.con,
                                    R.raw.sound3);
                            mediaplayert.start();

                        }
                    });


    return rootView;
    }
}

@Override
protected void onDestroy() {

    if (mediaplayert != null) {
        mediaplayert.stop();
        mediaplayert= null;
    }
    super.onDestroy();
}
}
4

0 回答 0