有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java调用另一个类中的AppCompatActivity类

我有一个扩展AppCompatActivity的类,它允许我播放视频(launchVideo方法),我想调用一个扩展AppCompatActivity的类

这是我的课程,让我阅读我的视频:

public class ReadVideo extends AppCompatActivity {

// Lien vers la documentation de MX Video Player ==> https://sites.google.com/site/mxvpen/api
public static final String MXVP = "com.mxtech.videoplayer.ad";

public static final String EXTRA_VIDEO_LIST = "video_list";
public static final String EXTRA_POSITION = "position";

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

public void launchVideo(View v) {
    try{
        // Chemin de la vidéo
        Uri videoUri = Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Movies/chrono.mp4");

        // Nouvelle activité qui permet de visionner une donnée (dans notre cas, la vidéo)
        Intent intent = new Intent(Intent.ACTION_VIEW);

        // On spécifie la donnée de l'activité ainsi que le MIME (ex: application, text, image, audio, etc.)
        // On veut lancer l'APPLICATION MX Video Player donc le MIME est "application"
        intent.setDataAndType(videoUri, "application/x-mpegURL");

        intent.putExtra(EXTRA_VIDEO_LIST, new Parcelable[] {videoUri});    // Permet d'éviter de lire toutes les vidéos du dossier du chemin envoyé
        intent.putExtra(EXTRA_POSITION, 10000);    // Commence la vidéo à 10sec

        //intent.setPackage(MXVP);    // Limite les applications possibles à celle de MX Video Player
        startActivity(intent);
    }
    catch( ActivityNotFoundException e2){
        displayToast(getResources().getString(R.string.error_unknownMX)); // Erreur, on affiche un message à l'utilisateur
        Log.e( "Error", getResources().getString(R.string.error_unknownMX));
    }
}

我要调用的类:

public class SimpleTextClientActivity extends AppCompatActivity {

private EditText textField;
private Button button;

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

    textField = (EditText) findViewById(R.id.editText1); // reference to the text field
    button = (Button) findViewById(R.id.button); // reference to the send button

    // Button press event listener
    button.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            //messsage = textField.getText().toString(); // get the text message on the text field
           // textField.setText(""); // Reset the text field to blank
            ReadVideo task2 = new ReadVideo();
            task2.launchVideo(v);
        }
    });
}

共 (2) 个答案

  1. # 1 楼答案

    你必须使用意图

    Intent videoIntent=new Intent(SimpleTextClientActivity .this,ReadVideo.class);
    startActivity(videoIntent);
    

    在ReadVideo活动中调用launchVideo()方法onCreate()

  2. # 2 楼答案

    现在我在我的类SimpleTextClientActivity上这样做

     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        textField = (EditText) findViewById(R.id.editText1); // reference to the text field
        button = (Button) findViewById(R.id.button); // reference to the send button
    
        // Button press event listener
        button.setOnClickListener(new View.OnClickListener() {
    
            public void onClick(View v) {
                //messsage = textField.getText().toString(); // get the text message on the text field
               // textField.setText(""); // Reset the text field to blank
                Intent videoIntent=new Intent(SimpleTextClientActivity .this,ReadVideo.class);
                startActivity(videoIntent);
    
    
            }
        });
    }
    

    在我的课堂视频中:

     View v;
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        launchVideo(v);
    }
    

    但当我点击按钮时,应用程序崩溃了