我正在瀏覽一些主題,但無法找到確切答案或至少無法正確顯示。代碼中會發生什麼是我爲數據庫中的每一行創建一個按鈕,並且每個按鈕都應該有一個OnClick,它將我們發送到另一個活動以及一些值(每個按鈕應該有不同的值),但最終似乎我的所有按鈕都具有相同的值,這讓我認爲它只爲所有按鈕創建1個視圖。以編程方式添加按鈕的不同點擊次數
Cursor przepis = bazaUzytkownikow.rawQuery("SELECT * FROM przepisy", null);
int liczba_wierszy = przepis.getCount();
przepis.moveToPosition(0);
for (int i = 0; i < (liczba_wierszy/4)+1; i++) {
LinearLayout row = new LinearLayout(this);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
for (int j = 0; j < 4; j++) {
if((przepis.moveToPosition((i*4)+j)!=false))
{
nrPrzepisu=(i*4)+j;
Button btnTag = new Button(this);
btnTag.setLayoutParams(new LayoutParams(115, 60));
btnTag.setText(przepis.getString(przepis.getColumnIndex("nazwa")));
btnTag.setTextSize(10);
btnTag.setId(j + 1 + (i * 4));
btnTag.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View t) {
// TODO Auto-generated method stub
Intent IdzPrzepis = new Intent(getApplicationContext(), DodajPrzepis.class);
IdzPrzepis.putExtra("ID_uzytkownika", ID_uzytkownika);
IdzPrzepis.putExtra("nr_Przepisu", nrPrzepisu);
startActivity(IdzPrzepis);
}
});
row.addView(btnTag);
}
}
layout.addView(row);
}
爲了使代碼對你更加清晰 - bazaUzytkownikow是我的數據庫,liczba_wierszy是我得到的行數。我將光標移動到開始位置,因爲它是我想要開始的位置,我繼續使用2個循環「剪切」我的數據。我瞄準1排4個按鈕。 我認爲不起作用的部分是OnClick方法,我希望我的按鈕切換活動併發送nrPrzepisu,它基本上是在我的按鈕和數據庫中正確的行之間添加連接(在其他活動中,我想設置文本,從數據庫中讀取行取決於你點擊哪個按鈕)。 我檢查了其他活動,它似乎每次讀取相同的nrPrzepisu,當循環結束時它通常等於nrPrzepisu =(i * 4)+ j的最後一個值,並且它讓我覺得我以某種方式需要爲每個按鈕製作不同的視圖。
我是新手,但在此之後我添加了「final int transfer = nrPrzepisu」。我也可以將它複製到我的意圖,它的工作,謝謝! – user3199264