2010-10-28 11 views
0

我必須在android中爲我的項目做一個備忘錄卡遊戲。至於現在我正處於我試圖弄清楚我的應用的基本形狀的階段。如何在Android中使用或不使用xml修改ToggleButton行爲

我讀過一些教程,但我可以;弄清楚如何修改很多動態創建的按鈕(即在'for'循環中),從xml或甚至代碼中。 爲了清楚我的問題這是我做

package piotrek.test1; 



import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.view.*; 
import android.widget.*; 
import java.util.ArrayList; 
import java.util.*; 


public class test1 extends Activity implements View.OnClickListener { 

private ArrayList<Integer> listaKart = new ArrayList<Integer>();  
private int rozmiar = 0;  
private int licznik = 0; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TworzKarty(); 
    //tu tworzymy definicje nowego wygladu (layout) czyli w formie tabeli 

    TableLayout layout = new TableLayout (this); 
    layout.setLayoutParams(new TableLayout.LayoutParams(4,5)); 

    //ustawienie odstepow do 'scian' 

    layout.setPadding(10,10,10,10); 

    //petle 'populujace' miejsca w tabeli przyciskami 

    for (int f=0; f<=5; f++) { 
     TableRow tr = new TableRow(this); 
     for (int c=0; c<=4; c++) { 
      ToggleButton b = new ToggleButton (this); 
      //b.setText(""+f+c); 
      b.setText(Integer.toString(listaKart.get(licznik))); 
      b.setTextSize(10.0f); 
      b.setTextColor(Color.rgb(100, 200, 200)); 
      b.setOnClickListener(this); 
      tr.addView(b, 60,60); 
      licznik++; 
     } // for 
     layout.addView(tr); 
    } // for 

    super.setContentView(layout); 
} //() 


public void TworzKarty(){ 

for (int i=0;i<=14;i++){ 
    this.listaKart.add(i); 
    this.listaKart.add(i); 
} 
//pomieszanie kolejnosci numerków 
Collections.shuffle(listaKart); 
rozmiar=listaKart.size(); 


} 



public void onClick(View view) { 
//((Button) view).setText("*"); 
//((Button) view).setEnabled(false); 
if (((ToggleButton) view).isChecked()) { 
    Toast.makeText(test1.this, Integer.toString(rozmiar), Toast.LENGTH_SHORT).show(); 
} 
else { 
    Toast.makeText(test1.this, "Not checked", Toast.LENGTH_SHORT).show(); 
} 
} 




} // class 

代碼當我運行的應用程序是,我在屏幕上30周的ToggleButtons會發生什麼事,他們每個人都有一個號碼從0到14(15對) 。這就是我想要的,但是當我按下其中的任何一個按鈕,除了顯示吐司按鈕的文本更改形式,我想要它打開,然後在另一個按下關閉。 我無法弄清楚如何控制這種行爲 - 我真的很感謝一些關於如何在代碼中嚴格實現這一點或使用xml的提示。另一種情況是如何使用xml來定義按鈕上文本集的佈局和隨機性。

+0

'import android.view。*;'當你這樣做的時候真的編譯嗎?我以爲你不能做通配符進口 – Falmarri 2010-10-28 21:09:59

回答

1

如果添加

b.setTextOff(Integer.toString(listaKart.get(licznik))); 
b.setTextOn(Integer.toString(listaKart.get(licznik))); 

自己內心的()循環,按鈕會一直顯示在列表中自己的位置,無論是切換或關閉。

+0

非常感謝,我知道它必須是簡單的東西,但我不能自己弄清楚。這是完美的,併爲我未來修改遊戲的目的留出空間。 – Piotrgo 2010-10-28 20:55:37