Ajout d'un bouton pour Android dans du code Java
Est-il possible d'ajouter un bouton à une Activité de mise en page avec du code Java. Si cela est possible, comment?
C'est mon fichier de mise en page:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ad_catalog_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical" >
<com.google.ads.AdView
xmlns:googleads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
googleads:adSize="IAB_BANNER"
googleads:adUnitId="a14d7f7d2180609" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/menu_mods"
android:textColor="#FFFFFF"
android:textSize="25sp" />
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="enterPeacefulPack"
android:text="@string/peacefulpack"
android:paddingBottom="20dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="20dp"
android:textColor="#FFFFFF"
android:textSize="25sp" />
</LinearLayout>
</ScrollView>
Si c'est possible j'aimerais avoir le Java-ajouté le bouton à l'intérieur de la LinearLayout qui est à l'intérieur de la ScrollView, mais si ce n'est pas possible, il serait également possible de le faire en normal LinearLayout.
La raison pourquoi je veux être en mesure d'obtenir par le biais de boutons de Java est que j'ai un Tableau qui contient plusieurs objets. Pour chaque objet, je voudrais avoir un bouton. Ce Tableau va augmenter en taille au fil du temps.
C'est le fichier d'Activité, je suis en utilisant
package com.wuppy.minecraftmods.mods;
import android.annotation.SuppressLint;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import com.google.ads.AdRequest;
import com.google.ads.AdView;
import com.wuppy.minecraftmods.R;
public class Mods extends Activity
{
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mods);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
getActionBar().setDisplayHomeAsUpEnabled(true);
}
AdView adView = (AdView) this.findViewById(R.id.ad);
adView.loadAd(new AdRequest());
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
public void enterPeacefulPack(View view)
{
Intent intent = new Intent(this, ModPeacefulpack.class);
startActivity(intent);
}
}
Si je veux ajouter des boutons à Java depuis je ne peux pas vraiment le faire en xml. Est-ce possible et si oui, comment?
- veuillez vous référer à cette url. stackoverflow.com/questions/4907609/...
- C'est tout à fait possible et il y a beaucoup de posts sur ce sujet sur Internet. Pourquoi ne pas utiliser Google?
Vous devez vous connecter pour publier un commentaire.
Oui c'est possible, de définir un id à votre LinearLayout dans votre fichier XML. permet de dire:
Puis dans l'Activité de code java à trouver cet id après le réglage de la contentView:
Puis de créer votre bouton:
le personnaliser comme vous le souhaitez, étant donné les méthodes prévues.
Et enfin l'ajouter à votre disposition:
Button button = new Button();
ne fonctionne pas sans la saisie d'un contexte. Cela fonctionne si vous importez le widget dejava.awt
contrairement à android.widget de. Mais à moins que j'utilise(this)
selon le contexte, new Bouton() ne fonctionne pas en java. Pouvez-vous expliquer pourquoi vous montrer juste le bouton(); ? Merci.Ajouter l'importation appropriés à votre Activité:
Puis créer un nouveau bouton de l'objet dans la méthode onCreate:
Ajouter enfin le bouton pour la mise en page:
Ce lien donne un tutoriel complet sur comment ajouter des widgets sur votre application Android à l'aide de code java. Donc, voici un résumé de votre bouton de la chose:
1) Vous retirez le
setContentView(...)
ligne de laonCreate()
méthode2) pouvez-Vous définir votre bouton comme ceci:
Button myButton = new Button(this);
3) Vous définissez une mise en page comme ceci:
RelativeLayout myLayout = new RelativeLayout(this);
4) Vous ajoutez le bouton pour la mise en page comme ceci:
myLayout.addView(myButton);
5) Vous définissez la mise en page comme ceci:
setContentView(myLayout);
Pour ajouter un bouton à une mise en page qui est déjà défini par la .fichier xml, ce qui est dans votre cas, vous écrivez le code suivant à la place des cinq étapes: