Кнопка управления? - PullRequest
       6

Кнопка управления?

0 голосов
/ 02 декабря 2010

Так что я довольно новичок во всей этой разработке для андроида, и я не знаю ни капли Java.Я пытаюсь научить себя этому, поэтому я подумал, что это будет большой ресурс.Я прочитал ресурсы devoloper.android и до сих пор не понимаю, так что вот мой вопрос.Я делаю простое приложение, которое будет менять цвет фона при нажатии кнопки.Как заставить кнопку сделать это?

Любые внешние ресурсы / примеры будут с благодарностью

Вот мой код:

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>

Ответы [ 2 ]

0 голосов
/ 03 декабря 2010

Есть несколько вещей, которые вам нужно сделать.Во-первых, вам нужно присвоить идентификатор тому, что вы собираетесь изменить цвет, LinearLayout, TextView или что-то еще.Затем вам нужно будет прикрепить код к кнопке, чтобы она запускалась при нажатии.Есть два способа сделать это.Сначала вы можете обработчик onClick для своего XML:

android:onClick="buttonChangeColor"

А затем в своем классе добавьте соответствующий метод:

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

Вы также можете прикрепить метод с помощью setOnClickListener: http://developer.android.com/reference/android/view/View.html#setOnClickListener(android.view.View.OnClickListener)

Еще одна полезная вещь - сохранить значение цвета в файле ресурсов (res / values ​​/ colors.xml):

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

Затем этот цвет можно использовать вВаш код:

ll.setBackgroundColor(getResources().getColor(R.color.color_0));
0 голосов
/ 02 декабря 2010

Вам необходимо получить представление о вашем линейном макете и установить его цвет фона.

Сначала вам нужно назначить свой LinearLayout ID в своем XML.Затем в onclicklistener вашей кнопки сделайте это.

LinearLayout ll = (Linearlayout) findViewById(R.id.layoutid);
ll.setBackgroundColor(); //I think this is what it's called

Я точно забываю, что происходит с функцией setBackgroundColor, вам придется это посмотреть.привет учебники Android, прежде чем пытаться делать вещи самостоятельно, как это.Там, где вы даже ничего не пробовали, прежде чем обратиться за помощью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...