Appeller une classe AppCompatActivity dans une autre
Résolu
Rayan958
-
Rayan958 -
Rayan958 -
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:
La classe dans laquelle je veux l'appeler:
Manifest:
Activity Main :
Merci à vous.
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:
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:
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:
<?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 :
<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.
A voir également:
- Appeller une classe AppCompatActivity dans une autre
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appeller en inconnu - Guide
- Classe ram - Guide
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Excel
- Retrouver la liste des élèves d'une classe - Forum Loisirs / Divertissements
4 réponses
J'ai fait quelques modifs et j'ai cela :
Dans ma classe SimpleTextClientActivity :
Dans ReadVideo :
Mais quand je lance l'application et je clique sur mon bouton l'appli crash. Est-ce un problème de manifest?
Dans ma classe 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);
}
});
}
Dans ReadVideo :
View v;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
launchVideo(v);
}
Mais quand je lance l'application et je clique sur mon bouton l'appli crash. Est-ce un problème de manifest?