web-dev-qa-db-fra.com

android Eclipse button événement OnClick

J'ai 2 fichiers: main_activity.xml et home.xml. J'ai fait un bouton dans main_activity.xml

Voici l'extrait de code:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
 xmlns:tools="http://schemas.Android.com/tools"
 Android:layout_width="match_parent"
 Android:background="@drawable/splash_background"
 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=".MainActivity" >

<Button
    Android:id="@+id/Home"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentRight="true"
    Android:layout_alignParentTop="true"
    Android:layout_marginRight="43dp"
    Android:onClick="home"
    Android:text="Home" />

</RelativeLayout>

Et puis, j'ai mon home.xml. Je veux que le bouton ouvre home.xml. Comment puis-je faire ceci? Je ne connais pas de Java et je suis nouveau dans le développement Android.

Voici mon home.xml ci-dessous:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:background="@drawable/app_bg"
    Android:layout_height="match_parent"
    Android:orientation="vertical" >


</LinearLayout>

Et ci-dessous est mon AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
 package="com.example.idozer"
 Android:versionCode="1"
 Android:versionName="1.0" >

 <uses-sdk
    Android:minSdkVersion="8"
    Android:targetSdkVersion="17" />

 <application
    Android:allowBackup="false"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme" >
    <activity
        Android:name="com.example.idozer.SplashActivity"
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity Android:name="com.example.idozer.MainActivity"
        Android:label="@string/app_name" >
    </activity>
</application>
</manifest>

Et c'est tout ce que j'ai. S'il vous plaît, si vous répondez, dites-moi où ajouter le code tel que le répertoire ou entre les extraits de code.

5

Pour gérer l'activité des clics dans Android, procédez comme suit.

  1. Implémentez OnClickListener sur YourActivity.Java class comme

    public class MainActivity extends Activity implements OnClickListener

  2. Ensuite, déclarez votre bouton dans la classe .Java comme

    Button btn = (Button) findViewById(R.id.btnPlay);

  3. Puis utilisez le bouton btn variable comme ci-dessous

    btn.setOnClickListener(new View.OnClickListener() {
    
        public void onClick(View v) {
            myClick(v); /* my method to call new intent or activity */
        }
    });
    
  4. Gérer l'événement de clic:

    public void myClick(View v) {
        Intent intent = new Intent(**this, Swipe.class**);
        startActivity(intent);// for calling the activity
    }
    

vous devez également enregistrer votre activité (.Java) dans Android manifest comme ci-dessous

<activity
    Android:name=".Swipe"
    Android:screenOrientation="landscape" >
</activity>
8
Kirtikumar A.

Vous pouvez utiliser ce code.

Android: OnClickListener

Dans notre classe d'activité, nous ajoutons la méthode onclick.

Dans notre classe d'activité, nous ajoutons la méthode onclick.

    //On click event for button1
public void button1OnClick(View v) {
    //Inform the user the button has been clicked
    Toast.makeText(this, "Button1 clicked.", Toast.LENGTH_SHORT).show();               
}

Dans le fichier de mise en page, nous ajoutons une référence au gestionnaire onclick de l'activité. L'application liera automatiquement la méthode onclick à la vue (dans ce cas, button1)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="vertical">

        <Button
            Android:id="@+id/button1"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:text="@string/button1"
            Android:onClick="button1OnClick"/>
</LinearLayout>
2
Md Imran Choudhury

créez une autre classe Allez à votre projet, faites un clic droit, cliquez sur classe et créez Accueil. Dans ce fichier de classe Home étend l'activité et ajoute le code comme ceci

public class Home extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);
  }
}

dans classe d'activité splash ajouter cette ligne

Intent intent = new Intent(SplashActivity.this,Home.class);
startActivity(intent);

ajouter la classe d'activité Accueil dans votre fichier manifeste Android

<activity Android:name="com.example.idozer.Home"
    Android:label="@string/app_name" >
</activity>
1

Android:onClick a été ajouté dans l'API de niveau 4 pour simplifier l'utilisation du Web à la manière de Javascript et gérer tout ce qui se trouve à partir du XML. En interne, elle ajoute une OnClickListener à la Button, qui appelle votre méthode home.

<Button
  Android:id="@+id/Home"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content"
  Android:layout_alignParentRight="true"
  Android:layout_alignParentTop="true"
  Android:layout_marginRight="43dp"
  Android:onClick="home"
  Android:text="Home" />

.

public void home(View view){
  Intent intent=new Intent (view.getContext(),Luton.class);
  this.startActivity(intent);
}

Dans votre classe d'activité

En utilisant du code Java, vous pouvez cliquer sur un bouton en récupérant l'identifiant du bouton à partir de XML.

<Button
  Android:id="@+id/myHomeButton"
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content"
  Android:layout_alignParentRight="true"
  Android:layout_alignParentTop="true"
  Android:layout_marginRight="43dp"
  Android:text="Home" />

.

Button button= (Button) findViewById(R.id.myHomeButton);
button.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
     //do whatever you want on button click
  }
});   

Les deux sont exactement les mêmes

0
Raghunandan

Je vais vous en donner un peu pour commencer, car cette réponse peut aider les personnes qui rencontrent des difficultés avec l'utilisation de onClick() de cette façon, mais vous devez vraiment apprendre Java et consulter laDocs Androidafin que vous puissiez poser de meilleures questions

Vous devez lire Ici à propos de Actviities et comment les créer. Ensuite, dans votre code, vous aurez une fonction

 public void home(View v)  //the name of this function comes from where you declared in your manifest `Android:onClick="home"
{
     Intent intent (MainActivity.this, HomeActivity.class); //MainActivity is the name of current activity and HomeActivity is the name of the activity you want to start
     can add intent extras/flags/categories here
     startActivity(intent);
}

Vous devez également ajouter la HomeActivity dans votre manifest comme vous l’avez fait pour l’autre Activities.

Mais vous devez vraiment parcourir la documentation et faire des tutoriels pour avoir une idée du fonctionnement du framework Android et apprendre Java afin de vous rendre la vie beaucoup plus facile. Outre les deux liens précédents que j'ai donnés, consultez également cet article à propos des événements liés aux clics, car il existe différentes manières d'utiliser onClick()

J'espère que cela vous suffit pour commencer et j'espère vraiment que vous parcourez la documentation pour mieux comprendre ce que vous faites. Bonne chance à toi!

Un autre lien important pour commencer

Intentions

0
codeMagic
Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
        }
    });
0
Omid Farvid