我已经有一段时间了(3天)。我正在尝试使用Eclipse制作一个Android应用程序。我想要两个图像按钮。每个链接到不同的站点。我无法做到。我已经能够使用webview打开一个带有按钮的网页,但不是两个。我已经开始尝试使用Intent,因为我在某处读到了更好的方法。最终,我想要做的是在应用程序中打开页面,然后使用后退按钮返回每个按钮/页面的应用程序主屏幕。到目前为止,这是我的代码。
MainActivity.java
package com.modsbyus.onoff;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Light()
{
Intent intent = new Intent(Intent.ACTION_VIEW, uri.parse("https://agent.electricimp.com/BGSBpog28J0u?led=1"));
startActivity(intent);
}
public void Light1()
{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://agent.electricimp.com/BGSBpog28J0u?led=0"));
startActivity(intent);
}
}
和我的布局 activity_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">
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.onClick="Light1"
android:clickable="true"
android:src="@drawable/ic_launcheronswitch" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.onClick="Light"
android:clickable="true"
android:src="@drawable/ic_launcheroffswitch" />
</LinearLayout>
你们给予的任何帮助都会很棒。 谢谢!
答案 0 :(得分:1)
我会将你的xml中的onclick改为android:onClick =“onClick”两个按钮,并在那里调用你的方法。只是为了看起来。确保您的类实现了OnClickListener。
然后你的onClick方法将是:
@Override
public void onClick(View v) {
Intent iExp = null;
switch (v.getId()) {
case R.id.imageButton1:
iExp = new Intent(new Intent(Intent.ACTION_VIEW, Uri.parse("https://agent.electricimp.com/BGSBpog28J0u?led=1"));
break;
case R.id.imageButton2:
iExp = new Intent(new Intent(Intent.ACTION_VIEW, Uri.parse("https://agent.electricimp.com/BGSBpog28J0u?led=0"));
break;
}
startActivity(iExp);
}
PS onClick图像按钮直到1.6才可用,而xml中的onClick有一个。什么时候应该是:
确保你的清单有:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
你的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">
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:clickable="true"
android:src="@drawable/ic_launcheronswitch" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:clickable="true"
android:src="@drawable/ic_launcheroffswitch" />
</LinearLayout>
你的班级:
package com.modsbyus.onoff;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onClick(View v) {
Intent iExp = null;
switch (v.getId()) {
case R.id.imageButton1:
iExp = new Intent(new Intent(Intent.ACTION_VIEW, Uri.parse("https://agent.electricimp.com/BGSBpog28J0u?led=1"));
break;
case R.id.imageButton2:
iExp = new Intent(new Intent(Intent.ACTION_VIEW, Uri.parse("https://agent.electricimp.com/BGSBpog28J0u?led=0"));
break;
}
startActivity(iExp);
}
}
答案 1 :(得分:0)
为了使用xml属性android:onClick="methodName"
,您需要声明一个返回void的公共方法,并接受一个View作为参数,其名称与onClick="methodName"
中定义的相同。
您在代码中需要的只是将参数View添加到Light和Light1方法中 所以,改变:
public void Light()
public void Light1()
到:
public void Light(View v)
public void Light1(View v)
并且,当 Rick 消化时,将android.onClick=
更改为android:onClick=