J'apprends à créer des applications Android et j'ai besoin d'une aide spécifique. Je n'arrive pas à me demander quels morceaux de code de gabarit je dois changer et quels bits sont statiques.
Dans le dossierLAYOUTj'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 la classe?) Qui lit 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
}
}
et ensuite mon SendPhotos.Java fichier 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, en ouvrant simplement cette activité, rien d’extraordinaire, en n’envoyant aucune donnée ni rien.
Je sais que quelque part j'ai besoin de mon
Intent i = new Intent(FromActivity.this, ToActivity.class);
startActivity(i);
mais je ne sais pas quoi remplacer ToActivity.class with ou quoi d'autre il me faut où.
Vous pouvez passer à l'activité souhaitée en cliquant sur le bouton. ajoutez simplement Android:onClick="sendMessage"
cette ligne.
xml:
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:onClick="sendMessage"
Android:text="@string/button" />
Dans votre activité principale, ajoutez simplement cette méthode:
public void sendMessage(View view)
{
Intent intent = new Intent(FromActivity.this, ToActivity.class);
startActivity(intent);
}
Et le plus important: n'oubliez pas de définir votre activité dans manifest.xml
<activity
Android:name=".ToActivity"
Android:label="@string/app_name">
</activity>
Essaye ça
Button button;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(getApplicationContext(),SendPhotos.class);
startActivity(i);
}
});
}
De l'activité: où êtes-vous actuellement?
Pour l'activité: où veux-tu aller?
Intent i = new Intent( MainActivity.this, SendPhotos.class);
startActivity(i);
Les deux activités doivent être incluses dans le fichier manifeste, sinon le fichier de classe ne sera pas trouvé et la fonction Force close.
Editez votre Mainactivity.Java
crate button's object;
maintenant Écrivez le code pour l'événement click.
Button btn = (button)findViewById(R.id.button1);
btn.LoginButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//put your intent code here
}
});
J'espère que cela fonctionnera pour vous.
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(MainActivity.this, MainActivity2.class);
MainActivity.this.startActivity(myIntent);
}
});
La réponse du noob complet à 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 pour MainActivity
.
il suffit de suivre cette étape (je ne suis pas en train d’écrire du code mais Bcoz, vous pouvez copier-coller et apprendre).
tout d'abord vous devez déclarer un bouton que vous avez en disposition
Donnez une référence à ce bouton en trouvant son identifiant (à l'aide de findviewById) dans oncreate
setlistener pour le bouton (comme l'écouteur setonclick)
dernière manipulation de l'événement click (signifie démarrer une nouvelle activité en utilisant l'intention que vous connaissez déjà)
N'oubliez pas d'ajouter l'activité dans le fichier manifeste
BTW c'est juste simple, je voudrais vous suggérer de commencer à partir de simples tutoriels disponibles Sur le net sera mieux pour vous ..
Meilleure chance pour Android
Remplacez le code de ligne ci-dessous:
import Android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener{
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(this);
}
public void onClick(View v) {
if(v.getId==R.id.button1){
Intent i = new Intent(FromActivity.this, ToActivity.class);
startActivity(i);
}
}
}
Ajoutez les lignes ci-dessous dans votre fichier manifeste:
<activity Android:name="com.packagename.FromActivity"></activity>
<activity Android:name="com.packagename.ToActivity"></activity>
Remplacez votre MainActivity.class par ce code
public class MainActivity extends Activity {
Button b1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button1);
b1.setOnClickListener(new View.onClickListener()
{
public void onClick(View v)
{
Intent i=new Intent(getApplicationContext(),SendPhotos.class);
startActivity(i);
}
}
)
}
Ajoutez ce code dans votre AndroidManifest.xml
après le </activity>
et avant le </application>
<activity Android:name=".SendPhotos"></activity>
Cela fonctionne toujours, l'un ou l'autre devrait être parfait:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v) {
startActivity(new Intent("com.tobidae.Activity1"));
}
//** OR you can just use the one down here instead, both work either way
@Override
public void onClick (View v){
Intent i = new Intent(getApplicationContext(), ChemistryActivity.class);
startActivity(i);
}
}
}
ajoutez le code ci-dessous au fichier activity_main.xml:
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:onClick="buttonClick"
Android:text="@string/button" />
et ajoutez simplement la méthode ci-dessous au fichier MainActivity.Java:
public void buttonClick(View view){
Intent i = new Intent(getApplicationContext()SendPhotos.class);
startActivity(i);
}
<Button
Android:id="@+id/btnSignIn"
Android:layout_width="250dp"
Android:layout_height="40dp"
Android:layout_marginEnd="8dp"
Android:layout_marginLeft="8dp"
Android:layout_marginRight="8dp"
Android:layout_marginStart="8dp"
Android:layout_marginTop="16dp"
Android:background="@drawable/circal"
Android:text="Sign in"
Android:textColor="@color/white"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/etPasswordLogin" />
EN CODE Java
Button signIn= (Button) findViewById(R.id.btnSignIn);
signIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(SignInPage.this,MainActivity.class));
}
});
}
Si vous avez deux boutons et que le même identifiant appelle votre bouton, cliquez sur des événements comme celui-ci:
Button btn1;
Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1= (Button)findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,target.class);
startActivity(intent);
}
});
btn2=(Button) findViewById(R.id.button1);//Have same id call previous button---> button1
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
Lorsque vous avez cliqué sur button1
, button2
fonctionnera et vous ne pourrez pas ouvrir votre deuxième activité.
Vous pouvez passer à l'activité souhaitée en cliquant sur le bouton. il suffit d'ajouter
Android: onClick = "timerApp" cette ligne.
xml:
<Button
Android:id="@+id/timer_app"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:onClick="timerApp"
Android:text="Click To run Timer Activity" />
In your main activity just add this method:
public void timerApp(View view){
Intent intent= new Intent(MainActivity.this,TimerActivity.class);
startActivity(intent);
}
OU dans la méthode onCreate (), ajoutez le code ci-dessous
Button btn =findViewById(R.id.timer_app);//Don't need to type casting in Android studio 3
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, TimerActivity.class);
startActivity(intent);
}
});