سؤال

يجب أن أقوم بعمل لعبة بطاقة مذكرات في Android لمشروعي. حتى الآن أنا في المرحلة التي أحاول فيها معرفة الشكل الأساسي لتطبيقي.

لقد قرأت بعض البرامج التعليمية ، لكنني لا أستطيع أن أتعرف على كيفية تعديل الكثير من الأزرار التي تم إنشاؤها ديناميكيًا (أي. في حلقة ") ، من 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 لتحديد هذا التصميم والعشوائية للنص المحدد على الأزرار.

هل كانت مفيدة؟

المحلول

اذا اضفت

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

إلى الداخلية الخاصة بك من أجل () حلقة () ، ستعرض الأزرار دائمًا موضعها في القائمة ، سواء تم تبديلها أو إيقافها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top