所以我对android开发有点新意。
我读了this作为我对可点击按钮的引用,我的xml中有一些更改。我遇到的问题是,每当我试图点击它时,都没有任何反应。我的手机和android工作室都没有错误信息。我想知道什么是缺失的,或者有什么我不知道的东西,我应该知道吗?
这是我的项目中的java
public class test_button extends Activity {
Button button ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
click();
}
public void click(){
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent browserIntent =
new Intent(Intent.ACTION_VIEW, Uri.parse("http://reddit.com"));
startActivity(browserIntent);
}
});
}
这是我的xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<include layout="@layout/layout_toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
android:id="@+id/toolbar"/>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:id="@+id/profile_page_activity_body"
android:layout_below="@id/toolbar"
>
<Button
android:layout_width="wrap_content"
android:layout_height="60sp"
android:text="Do things"
android:textColor="#ffffff"
android:textSize="40sp"
android:id="@+id/button"
android:textAllCaps="false"
android:background="@drawable/btn_greenbox"
android:layout_centerHorizontal="true"
android:layout_marginTop="51dp" />
</RelativeLayout>
Edit1:on onClick(),我确实尝试过Toast,但结果相似,没有任何反应。
Edit2:只要我点击它就会在按钮上点击动画
答案 0 :(得分:0)
这样的通话意图可能会在您的链接中出现问题:
点击: -
**Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.reddit.com/"));
startActivity(i);**
答案 1 :(得分:0)
如何将点击监听器设置为:
public class TestButton extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// Intent code here;
}
}
答案 2 :(得分:0)
在onCreate
内设置onclick listenter而不是该方法,然后尝试。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent browserIntent =
new Intent(Intent.ACTION_VIEW, Uri.parse("http://reddit.com"));
startActivity(browserIntent);
}
});
}
此外,test_button
不是一个好名字。将其更改为TestButton
。 (使用重构[shift + f6]重命名,这样就不会出现参考错误)