2010-12-01 14 views
0

Donc, je suis assez nouveau à toute cette chose de développement pour Android et je ne connais pas une nappe de Java. J'essaye de m'enseigner ceci donc j'ai pensé que ce serait une grande ressource. J'ai lu les ressources devoloper.android et je ne comprends toujours pas alors voici ma question. Je fais une application simple qui va changer la couleur de fond quand le bouton est pressé. Comment puis-je faire le bouton faire cela?Contrôle de bouton?

Les ressources extérieures/exemples seraient grandement appréciés

Voici mon code à ce jour:

IntroActivity.java

package com.flashcalc; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View.OnTouchListener; 
import android.widget.Button; 

public class IntroActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    } 
} 

Main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/all_white"> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    android:textColor="@color/all_black" 
    android:gravity="center_horizontal"/> 
<Button android:text="@string/ChangeColor" 
android:id="@+id/ChangeColor" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center_horizontal|center_horizontal|center" 
android:layout_gravity="center_horizontal|center_horizontal|center"> 
</Button> 
</LinearLayout> 

Strings. xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="hello">Tjs Flashlight</string> 
    <string name="app_name">FlashCalc</string> 
    <string name="ChangeColor">I Love Buttons</string> 
    <color name="all_white">#FFFFFF</color> 
    <color name="all_black">#000000</color> 
</resources> 

Répondre

0

Vous devez obtenir l'affichage de votre linearlayout et définir sa couleur d'arrière-plan.

Vous devez d'abord affecter votre LinearLayout à un ID dans votre fichier XML. Ensuite, dans onclicklistener de votre bouton, faites ceci. J'oublie exactement ce qui se passe dans la fonction setBackgroundColor, vous aurez à le rechercher.

Vous devriez vraiment passer par tous les tutoriels bonjour Android avant d'essayer de faire des choses par vous-même comme ceci. Où vous n'avez même rien essayé avant de venir chercher de l'aide.

0

Il y a plusieurs choses à faire. D'abord, vous devez donner un identifiant à tout ce que vous allez changer la couleur de, LinearLayout, TextView ou autre. Ensuite, vous devrez attacher le code au bouton pour exécuter quand on clique dessus. Il y a deux façons de faire ça. Tout d'abord, vous pouvez un gestionnaire onClick à votre XML:

android:onClick="buttonChangeColor" 

Et puis dans votre classe, ajoutez la méthode appropriée:

public void buttonChangeColor(View v) { 
    LinearLayout ll = (LinearLayout) findViewById(R.id.whateverYouCalledThis); 
    ll.setBackgroundColor(0xffffff); //white 
} 

Vous pouvez également joindre une méthode utilisant setOnClickListener: http://developer.android.com/reference/android/view/View.html#setOnClickListener(android.view.View.OnClickListener)

Une autre chose qui pourrait être utile est de stocker votre valeur de couleur dans un fichier de ressources (res/values ​​/ colors.xml):

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="color_0">#ffffff</color> 
</resources> 

Vous pouvez ensuite utiliser cette couleur dans votre code:

ll.setBackgroundColor(getResources().getColor(R.color.color_0));