Ankit
Ankit

Reputation: 6622

onclick event not getting triggered

this is my code, can you tell me whats the problem?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background_bf"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:orientation="vertical" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="40dp"
                android:gravity="center_vertical"
                android:padding="10dp"
                android:text="SELECT YOUR LANGUAGES"
                android:textColor="#8E8D8D"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/langDutch"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/bg_settings_dutchon_hc_2x"
                android:drawablePadding="10dp"
                android:gravity="center_vertical"
                android:onClick="onlanguageSelect"
                android:padding="10dp"
                android:text="Dutch"
                android:textColor="#454C52" />

            <TextView
                android:id="@+id/langFlemish"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/bg_settings_dutchact_hc_2x"
                android:drawablePadding="10dp"
                android:gravity="center_vertical"
                android:onClick="onlanguageSelect"
                android:padding="10dp"
                android:text="Flemish"
                android:textColor="#454C52" />

            <TextView
                android:id="@+id/langFrench"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/bg_settings_franceon_hc_2x"
                android:drawablePadding="10dp"
                android:gravity="center_vertical"
                android:onClick="onlanguageSelect"
                android:padding="10dp"
                android:text="French"
                android:textColor="#454C52" />
        </LinearLayout>
    </ScrollView>

    <TextView
        android:id="@+id/settingscontinue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="20dp"
        android:background="@drawable/button_hc_bf_language_2x"
        android:gravity="center"
        android:text="CONTINUE"
        android:textColor="@color/white"
        android:textSize="16sp"
        android:textStyle="bold" />

</LinearLayout>

and this is in activity:

public void onlanguageSelect(View v){
        Log.v("Language Settings: ", " onlanguageSelect clicked.");
        int id = v.getId();
        String lang;
        switch (id) {
        case R.id.langDutch:
            lang = "nl_NL";
            break;
        case R.id.langFlemish:
            lang = "nl_BE";
            break;
        case R.id.langFrench:
            lang = "fr";
            break;
        default:
            lang = "nl";
            break;
        }
        changeLocale(lang);
    }

    private void changeLocale(String localeString){
        Locale locale = new Locale(localeString);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
        Log.v("Language Settings: ", "language changed successfully.");
    }

Upvotes: 0

Views: 113

Answers (2)

Qadir Hussain
Qadir Hussain

Reputation: 8856

Make sure you have implemented the onClickListner() interface in your activity class. and also make sure you have register your all TextViews with the interface like this in onCreate() method.

TextView btnDutch = (TextView ) findViewById(R.id.langDutch);
btnDutch.setOnClickListener(this);

this should work.

Upvotes: 0

Steve Benett
Steve Benett

Reputation: 12933

As Raghunandan said, every View have to be marked as clickable to get the onClick handler to work.

Try this for your TextViews:

        <TextView
            android:id="@+id/langFrench"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/bg_settings_franceon_hc_2x"
            android:drawablePadding="10dp"
            android:gravity="center_vertical"
            android:onClick="onlanguageSelect"

            android:clickable="true"

            android:padding="10dp"
            android:text="French"
            android:textColor="#454C52" />

Upvotes: 1

Related Questions