Android state_selected不工作,建议?

时间:2013-11-25 19:54:55

标签: java xml image button background

已经阅读了这个地方的所有相关主题,但没有任何运气。我有一些带有自定义背景的按钮,在XML文件中声明,放在资源所在的同一个可绘制文件夹中。

XML:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_pressed"
          android:state_selected="true" />
    <item android:drawable="@drawable/button_focused"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_rez_default" />
</selector>

除了:“android:state_selected”功能之外,其他所有状态都有效,这是我最需要的。我找到了一些使用setSelected(true)的java解决方案;但这闻起来像是即兴创作。

java方法是唯一的方法吗?我也尝试了,但是当我将按钮更改为字段变量时,我的应用程序在单击任何按钮时崩溃。

选择时我的按钮会改变背景的任何建议吗? 谢谢!

    package com.example.cinemagrandmall;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class MainActivity extends Activity {

       private WebView myWebView;
       protected View v2;
       protected View v1;


       @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myWebView= (WebView) findViewById(R.id.webview);
        WebView myWebView = (WebView) findViewById(R.id.webview);
        myWebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        myWebView.setWebChromeClient(new WebChromeClient());
        myWebView.loadUrl("http://edmondvarga.com/testing_app/home.html");
        myWebView.getSettings().setJavaScriptEnabled(true);

        Buttons();
       }


        private void Buttons() {
        Button home = (Button) findViewById(R.id.prog_btn);
        Button rezervari = (Button) findViewById(R.id.rezervari_btn);
        Button locatie = (Button) findViewById(R.id.locatie_btn);

        home.setOnClickListener(new View.OnClickListener() {


        @Override
            public void onClick(View v1) {              
            myWebView.loadUrl("http://edmondvarga.com/testing_app/home.html");    
              if (v1.isSelected()){
                  v2.setSelected(false);

                 } else {
                  v1.setSelected(true);                 
                 }
              }     
        });

        rezervari.setOnClickListener(new View.OnClickListener() {

        @Override
            public void onClick(View v2) {              
            myWebView.loadUrl("http://edmondvarga.com/testing_app/rezervari.html");     
               if (v2.isSelected()){
                   v1.setSelected(false);

                    } else {
                   v2.setSelected(true);                    
                    }
                  }
            });

         locatie.setOnClickListener(new View.OnClickListener() {

         @Override
         public void onClick(View v3) {             
         myWebView.loadUrl("http://edmondvarga.com/testing_app/locatie.html");              
            }
        });
        }

}

0 个答案:

没有答案