已经阅读了这个地方的所有相关主题,但没有任何运气。我有一些带有自定义背景的按钮,在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");
}
});
}
}