Appeller une classe AppCompatActivity dans une autre
Bonjour tout le monde,
J'ai une classe extends AppCompatActivity qui me permet de lire une vidéo (méthode launchVideo) et j'aimerais pouvoir l'appeler dans une classe extends AppCompatActivity.
Voici ma classe me permettant de lire ma vidéo:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| 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));
}
} |
La classe dans laquelle je veux l'appeler:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 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);
}
});
}
} |
Manifest:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.video.streaming.myapplication2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="21"
android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<application
android:allowBackup="true"
android:label="Test"
android:theme="@style/AppTheme" >
<activity
android:name="com.video.streaming.myapplication2.SimpleTextClientActivity"
android:label="Test" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest> |
Activity Main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".SimpleTextClientActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Regarder une vidéo !"
android:id="@+id/button"
android:layout_marginBottom="168dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
</RelativeLayout> |
Merci à vous.