J'apprends à créer des applications Android et j'ai besoin d'une aide spécifique. Je n'arrive pas à comprendre quels bits de code de modèle je dois changer et quels bits sont statiques.
Dans le dossier LAYOUT , j'ai mon ACTIVITY_MAIN.XML qui lit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="horizontal">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/main_buttons_photos" />
</LinearLayout>
Ensuite, j'ai ma deuxième activité ACTIVITY_SEND_PHOTOS.XML qui est
<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" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
tools:context=".SendPhotos" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/title_activity_send_photos"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
J'ai alors mon MainActivity.java (est-ce le .class?) Cela lit le package com.example.assent.bc;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
// Do something in response to button
}
}
puis mon fichier SendPhotos.java qui est;
package com.example.assent.bc;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class SendPhotos extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_photos);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_send_photos, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
Je voudrais que le bouton de mon activité principale soit lié à mon activité sendphotos, ouvrant simplement cette activité, rien d'extraordinaire, n'envoyant aucune donnée ou quoi que ce soit.
Je sais que quelque part j'ai besoin de mon
Intent i = new Intent(FromActivity.this, ToActivity.class);
startActivity(i);
mais je n'ai aucune idée de quoi remplacer ToActivity.class ou de quoi d'autre j'ai besoin où.
la source
Réponses:
Vous pouvez passer à l'activité souhaitée en cliquant sur le bouton. ajoutez simplement cette ligne.
android:onClick="sendMessage"
xml:
Dans votre activité principale, ajoutez simplement cette méthode:
Et le plus important: n'oubliez pas de définir votre activité en
manifest.xml
la source
>
le tag d'activitéView
,Intent
et les noms d'activité sont en rouge. Dois-je importer quelque chose pour View?android:onClick="sendMessage"
Essaye ça
la source
De l'activité: où êtes-vous actuellement?
À l'activité: où voulez-vous aller?
Intent i = new Intent( MainActivity.this, SendPhotos.class); startActivity(i);
Les deux activités doivent être incluses dans le fichier manifeste, sinon il ne trouvera pas le fichier de classe et fermera Force.
Modifiez votre Mainactivity.java
Maintenant, écrivez le code pour l'événement de clic.
J'espère que cela fonctionnera pour vous.
la source
La réponse pour le noob complet d'un noob complet:
MainActivity
est le nom de la première activité.MainActivity2
est le nom de la deuxième activité.button1
est l'ID du bouton en xml pourMainActivity
Activity.la source
suivez simplement cette étape (je n'écris pas de code juste Bcoz vous pouvez faire du copier-coller et ne pas apprendre).
tout d'abord, vous devez déclarer un bouton que vous avez dans la mise en page
Faites référence à ce bouton en trouvant son identifiant (en utilisant findviewById) dans oncreate
setlistener pour bouton (comme setonclick listener)
gérer en dernier l'événement de clic (signifie démarrer une nouvelle activité en utilisant l'intention comme vous le savez déjà)
N'oubliez pas d'ajouter l'activité dans le fichier manifeste
BTW c'est juste simple, je voudrais vous suggérer que commencer simplement à partir de simples tutoriels disponibles sur le net sera mieux pour vous.
Bonne chance pour Android
la source
Remplacez le code de ligne ci-dessous:
Ajoutez les lignes ci-dessous dans votre fichier manifeste:
la source
Remplacez votre MainActivity.class par ce code
Ajoutez ces codes dans votre
AndroidManifest.xml
après</activity>
et avant</application>
la source
Cela fonctionne toujours, l'un ou l'autre devrait être très bien:
la source
ajoutez le code ci-dessous au fichier activity_main.xml:
et ajoutez simplement la méthode ci-dessous au fichier MainActivity.java:
la source
Si vous avez deux boutons et que vous avez le même appel d'identifiant pour vos événements de clic de bouton comme ceci:
Lorsque vous avez cliqué
button1
,button2
cela fonctionnera et vous ne pourrez pas ouvrir votre deuxième activité.la source
EN CODE JAVA
}
la source
Vous pouvez passer à l'activité souhaitée en cliquant sur le bouton. il suffit d'ajouter
android: onClick = "timerApp" cette ligne.
Dans votre activité principale, ajoutez simplement cette méthode:
OU dans la méthode onCreate (), ajoutez le code ci-dessous
la source