onClick没有在Scrollview中的按钮上执行?

时间:2012-05-03 04:58:10

标签: android button scrollview

我制作了一个由6个水平线性布局组成的垂直线性布局。每个水平布局在滚动视图上包含10个以上的按钮。下面是主要的线性布局,其中包含一个水平布局。

    <LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp" 
android:gravity="center"
xmlns:android="http://schemas.android.com/apk/res/android">
<HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="75dp">

        <Button 
            android:id="@+id/button1"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button1"/>


        <Button
            android:id="@+id/button2"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button2"/>

        <Button
            android:id="@+id/button3"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button3"
            android:text="" />

        <Button
            android:id="@+id/button4"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button4"
            android:text="" />


        <Button
            android:id="@+id/button5"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button5"
            android:text="" />

        <Button
            android:id="@+id/button6"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button6"
            android:text="" />

        <Button
            android:id="@+id/button7"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button7"
            android:text="" />

        <Button
            android:id="@+id/button8"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button8"
            android:text=""
            android:textSize="" />

        <Button
            android:id="@+id/button9"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button9"
            android:text="" />

        <Button
            android:id="@+id/bCaitlyn"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/caitlynsplash"
            android:text="" />

        <Button
            android:id="@+id/button10"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button10"
            android:text=""
            android:textSize="10.5dp" />

        <Button
            android:id="@+id/button11"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button11"
            android:text=""
            android:textSize="11dp" />

        <Button
            android:id="@+id/button12"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button12"
            android:text="" />

        <Button
            android:id="@+id/button13"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:background="@drawable/button13"
            android:text=""
            android:textSize="11dp" />
        </LinearLayout>
        </HorizontalScrollView>

onClick命令似乎没有按下时执行的问题。按钮识别触摸(因为它改变颜色),但似乎没有任何事情发生。

    package com.LeagueProject;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;

    public class Project extends Activity implements View.OnClickListener{

Button Button1, Button2, Button3, Button4, Button5, Button6, Button7, Button8,
    Button9, Button10, Button11, Button12, Button13;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    projectbuttons();   
    Button1.setOnClickListener(this);
    Button2.setOnClickListener(this);
    Button3.setOnClickListener(this);

}


// Assigned Buttons
private void projectbuttons() {

    Button1 = (Button) findViewById(R.id.button1);
    Button2 = (Button) findViewById(R.id.button2);
    Button3 = (Button) findViewById(R.id.button3);
    Button4 = (Button) findViewById(R.id.button4);
    Button5 = (Button) findViewById(R.id.button5);
    Button6 = (Button) findViewById(R.id.button6);
    Button7 = (Button) findViewById(R.id.button7);
    Button8 = (Button) findViewById(R.id.button8);
    Button9 = (Button) findViewById(R.id.button9);
    Button10 = (Button) findViewById(R.id.button10);
    Button11 = (Button) findViewById(R.id.button11);
    Button12 = (Button) findViewById(R.id.button12);
    Button13 = (Button) findViewById(R.id.button13);

}


public void onClick(View v) {
    int id = v.getId();
    switch (id) {
        case R.id.button1:
        setContentView(R.layout.screen1);
            break;

        case R.id.button2:
        setContentView(R.layout.screen2);
            break;

        case R.id.button3:
        setContentView(R.layout.screen3);
            break;

    }

}
    }

非常欢迎任何见解以及提示/技巧。

3 个答案:

答案 0 :(得分:3)

当您在活动中implements View.OnClickListener时,您必须这样做 覆盖它永远不会执行的onClick()方法..

@Override
public void onClick(View v) {
  .
  .
  .
 }

答案 1 :(得分:2)

我使用默认按钮尝试了你的代码,没有给任何图像到按钮,它工作正常...它转到相应的布局....

答案 2 :(得分:0)

我不确定这是否是您所需要的,但您可以在布局文件中定义onClick()方法。

<Button 
        android:id="@+id/button1"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:background="@drawable/button1" 
        android:onClick="onClick"
/>

你能试试吗?