4

您好我正在嘗試使用兩個不同類的應用程序我知道我不能在Java中使用兩個類的擴展。我將如何去分離下面的代碼到兩個不同的類中,以便擴展Fragment和其他AppCompatActivity?一起使用Fragment和AppCompatActivity類

package com.example.oliver.myapplication; 

import android.support.v4.app.Fragment; 
import android.app.AlertDialog; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.ImageButton; 
import android.widget.TextView; 

import java.util.Random; 


public class MyFragment extends AppCompatActivity, Fragment { 

    Button b, b2; 
    MediaPlayer nice, burp; 
    ImageButton img; 
    int n; 
    MediaPlayer [] s = new MediaPlayer[6]; 
    AlertDialog.Builder adb; 

    public static MyFragment newInstance() { 
     MyFragment fragment = new MyFragment(); 
     return fragment; 
    } 

     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      View rootView = inflater.inflate(R.layout.my_fragment, container, false); 
      img = (ImageButton) rootView.findViewById(R.id.img); 

      s[0] = MediaPlayer.create(MyFragment.this, R.raw.burp); 
      s[1] = MediaPlayer.create(MyFragment.this, R.raw.robert); 
      s[2] = MediaPlayer.create(MyFragment.this, R.raw.burp2); 



     img.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       for (int i = 0; i < 1; i++) { 
        Random r = new Random(); 
        n = r.nextInt(3); 

        s[n].start(); 
       } 
      } 
     });return rootView; 


}} 
+0

擴展Activity和Fragment的目的是什麼?它們是Android中的分離結構。試圖從這兩位父母那裏抽取什麼樣的功能? – JCricket

+0

我希望能夠滑動瀏覽應用程序,並且該應用程序使用MediaPlayer播放聲音 –

+0

實施滑動導航:http://developer.android.com/training/implementing-navigation/lateral.html – JCricket

回答

3

上面的代碼是無效的Java。

一個類只能擴展一個類。你的活動/片段同時擴展了2個課程。

上面給出的類是有效的片段亞類中,除了這些行:

 s[0] = MediaPlayer.create(MyFragment.this, R.raw.burp); 
     s[1] = MediaPlayer.create(MyFragment.this, R.raw.robert); 
     s[2] = MediaPlayer.create(MyFragment.this, R.raw.burp2); 

替換爲 「MyFragment.this」 「MyFragment.getActivity()」。

現在你可以將「擴展AppCompatActivity,片段」與「擴展片段」

現在你有一個有效的片段。

自己創建AppCompatActivity。查看如何將片段添加到活動中。

如良好的編程習慣小費,我建議你在onCreateView()將以下代碼onActivityCreated():

 img = (ImageButton) rootView.findViewById(R.id.img); 

     s[0] = MediaPlayer.create(MyFragment.this, R.raw.burp); 
     s[1] = MediaPlayer.create(MyFragment.this, R.raw.robert); 
     s[2] = MediaPlayer.create(MyFragment.this, R.raw.burp2); 



    img.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      for (int i = 0; i < 1; i++) { 
       Random r = new Random(); 
       n = r.nextInt(3); 

       s[n].start(); 
      } 
     } 
    }); 

變化

 img = (ImageButton) rootView.findViewById(R.id.img); 

 img = (ImageButton) getView().findViewById(R.id.img); 
相關問題