2012-05-03 29 views
0

我做了一個由6個水平線性佈局組成的垂直線性佈局。每個水平佈局在滾動視圖上包含10個以上的按鈕。以下是包含其中一種水平佈局的主要線性佈局。onClick不在滾動視圖中的按鈕上執行?

<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; 

    } 

} 
    } 

任何洞察力以及技巧/技術都非常受歡迎。

回答

0

我不確定這是否是您需要的,但您可以在佈局文件本身中定義onClick()方法。

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

你能試試嗎?

3

當你implements View.OnClickListener在你的活動,那麼你必須 覆蓋的onClick()方法否則它永遠不會執行..

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

我使用默認的按鈕,而不給予任何按鈕,圖像想你的代碼,它工作正常...它去相應的佈局......

+0

即使與圖像的按鈕在這裏工作正常...你有什麼例外嗎? – sush

+0

當我在手機上運行它時,它會停留在線性佈局屏幕上。我可以按下所有按鈕,但什麼也不會發生。這可能是一個月食錯誤? –

+0

我嘗試在模擬器和工程..只是嘗試在模擬器一次交叉檢查 – sush