我有一个带有一些按钮和webview的栏的活动。
要将每个按钮与网址相关联,我执行onClickListener
以加载网络视图中关联的网址。
我的问题是必须在webview加载网址之前点击两次按钮。
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="1">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".005"
android:background="@drawable/gradient"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight=".1"
>
<Button
android:id="@+id/db1"
android:layout_width="140dp"
android:layout_height="60dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="10dp"
android:background="@android:color/transparent"
android:text="VETRINA"
android:focusableInTouchMode="false"
android:textColor="@color/silver"
android:textSize="20dp" />
<Button
android:id="@+id/db2"
android:focusableInTouchMode="false"
android:layout_width="140dp"
android:layout_height="60dp"
android:layout_marginTop="10dp"
android:background="@android:color/transparent"
android:text="ANNUNCI"
android:textColor="@color/silver"
android:textSize="20dp" />
<Button
android:id="@+id/db3"
android:layout_width="140dp"
android:layout_height="60dp"
android:layout_marginTop="10dp"
android:focusableInTouchMode="false"
android:background="@android:color/transparent"
android:text="NOTIZIE"
android:textColor="@color/silver"
android:textSize="20dp" />
<Button
android:id="@+id/db4"
android:layout_width="140dp"
android:layout_height="60dp"
android:focusableInTouchMode="false"
android:layout_marginTop="10dp"
android:background="@android:color/transparent"
android:text="UTILI"
android:textColor="@color/silver"
android:textSize="20dp" />
<Button
android:id="@+id/db5"
android:layout_width="140dp"
android:layout_height="60dp"
android:layout_marginTop="10dp"
android:background="@drawable/round_corner"
android:text="YOUTUBE"
android:focusableInTouchMode="false"
android:textColor="@color/silver"
android:textSize="20dp" />
<Button
android:id="@+id/db6"
android:layout_width="140dp"
android:layout_height="60dp"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_marginTop="10dp"
android:background="@android:color/transparent"
android:text="ANNUNCI"
android:textColor="@color/silver"
android:textSize="20dp"
/>
</LinearLayout>
</LinearLayout>
<com.pack.MyWebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight=".995" />
</LinearLayout>
这是onClickListener
private void initButton(){
bottoni = new Button[6];
bottoni[0] = (Button)findViewById(R.id.db1);
bottoni[1] = (Button)findViewById(R.id.db2);
bottoni[2] = (Button)findViewById(R.id.db3);
bottoni[3] = (Button)findViewById(R.id.db4);
bottoni[4] = (Button)findViewById(R.id.db5);
bottoni[5] = (Button)findViewById(R.id.db6);
for(int i=0;i<6;i++)
setListB(bottoni[i],buttons[i]);
}
}
private void setListB(Button b,String content_b){
String[] all = content_b.split("@@");
final String title = all[0];
final String link = all[1];
b.setText(title);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
web.loadUrl(link);
}
});
}
我该如何解决?感谢!!!
答案 0 :(得分:0)
尝试更改方法名称(可能会混淆编译器)并在使用许多按钮时使用开关。不确定方法名称,只需试一试。
答案 1 :(得分:-1)
在班级
创建clickedButton
变量
View clickedButton;
和onClick
如下(我假设onClick
对所有按钮都很常见。)
public void onClick(View v) {
if (clickedButton == null) {
clickedButton = v;
} else {
if (clickedButton == v) {
// load url and set clicked button to null
loadUrl();
clickedButton = null;
} else {
clickedButton = v;
}
}
}
祝你好运:)