0

Android アプリケーションに Horizo​​ntalScrollView があり、その中に40ボタンあります。たとえば、クリックされたボタンに応じてデータベースからデータを取得するリスナーを実装したいと考えています。

ボタン番号1がクリックされた場合、リスナーはデータベースから週1に関連するデータを取得する必要があります

各ボタンにリスナーを実装する必要がありますか、またはどのボタンがクリックされたかを知り、ボタン番号と取得する週を変更してすべてのボタンに1つのリスナーを使用する方法はありますか?

データベース クエリ メソッド

DataBaseHelper myDbHelper = new DataBaseHelper(this);
        SQLiteDatabase db = myDbHelper.getReadableDatabase();

        String selectWebQuery = "select * from zweeks where zweeks_id = " + weekSince ;
        Cursor cursor = db.rawQuery(selectWebQuery, null);

        int CurrentDay=(int) (numberOfDaysSince%7);
        if(CurrentDay==0)CurrentDay=7;
        System.out.println("current Day="+CurrentDay);

        String     string1 =null;
        String     string2 = null;
        String     string3 = null;
        String     string4 = null;
        String     string5 = null;
        String     string6 = null;
        String     string7 = null;
        String tags=null;

        if (cursor != null)
                { cursor.moveToFirst();
                string1 = cursor.getString(1);
                string2 = cursor.getString(2);
                string3 = cursor.getString(3);
                string4 = cursor.getString(4);
                string5 = cursor.getString(5);
                string6 = cursor.getString(6);
                string7 = cursor.getString(7);

          String tags1 ="<head><style>body{float:right;text-align:right;word-wrap: break-word; }</style><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /></head><body>";

                switch(CurrentDay){

              case 1:tags=tags1+string1+"<img src=\"file:///android_res/drawable/dottedline.png\" />"+string2+"<br><br>"+string3+"<br><br>"+string4+"<br><br>"+string5+"<br><br>"+string6+"<br><br>"+string7+"<img src=\"file:///android_res/drawable/line.png\" /><br>" ;

              break;
              case 2:tags=tags1+string2+"<br><img src=\"file:///android_res/drawable/dottedline.png\" /><br>"+string3+"<br><br>"+string4+"<br><br>"+string5+"<br><br>"+string6+"<br><br>"+string7+"<br><img src=\"file:///android_res/drawable/line.png\" /><br>"+string1+"<br>" ;

              break;
              case 3:tags=tags1+string3+"<br><img src=\"file:///android_res/drawable/dottedline.png\" /><br>"+string4+"<br><br>"+string5+"<br><br>"+string6+"<br><br>"+string7+"<br><img src=\"file:///android_res/drawable/line.png\" /><br>"+string1+"<br><br>"+string2+"<br>" ;

              break;
              case 4:tags=tags1+string4+"<br><img src=\"file:///android_res/drawable/dottedline.png\" /><br>"+string5+"<br><br>"+string6+"<br><br>"+string7+"<br><img src=\"file:///android_res/drawable/line.png\" /><br>"+string1+"<br><br>"+string2+"<br><br>"+string3+"<br><br>" ;

              break;
              case 5:tags=tags1+string5+"<br><img src=\"file:///android_res/drawable/dottedline.png\" /><br>"+string6+"<br><br>"+string7+"<br><img src=\"file:///android_res/drawable/line.png\" /><br>"+string1+"<br><br>"+string2+"<br><br>"+string3+"<br><br>"+string4+"<br><br>" ;

              break;
              case 6:
                  tags=tags1+string6+"<br><img src=\"file:///android_res/drawable/dottedline.png\" /><br>"+string7+"<br><img src=\"file:///android_res/drawable/line.png\" /><br>"+string1+"<br><br>"+string2+"<br><br>"+string3+"<br><br>"+string4+"<br><br>"+string5+"<br><br>" ;

              break;
              case 7:
                  tags=tags1+string7+"<br><img src=\"file:///android_res/drawable/dottedline.png\" /><br>"+string1+"<br><br>"+string2+"<br><br>"+string3+"<br><br>"+string4+"<br><br>"+string5+"<br><br>"+string6+"<br><br>" ;

              break;

            }

          } 

      webView.loadDataWithBaseURL("file:///android_res/drawable/", tags, "text/html", "UTF-8", null);
}

この文は、クリックされたボタンに応じて動的になる必要があります

  • String selectWebQuery = "select * from zweeks where zweeks_id = " + weekSince ;

前もって感謝します。

4

1 に答える 1

2

Activity実装を作成するonClickListenerと、どのボタンがクリックされたかを区別できるようになる可能性があります。そのようなアプローチの例:

public class FirstActivity extends Activity implements OnClickListener {.....

@Override
public void onClick(View v) { // Parameter v stands for the view that was clicked.  

    // getId() returns this view's identifier.
    if(v.getId() == R.id.leftButton){
        // setText() sets the string value of the TextView
        changingTextView.setText("You clicked First");
    }else if(v.getId() == R.id.rightButton){
        changingTextView.setText("You clicked Second");
    }
}

ボタンにタグを設定してから、次のようなものを使用すると、さらに改善できます。

int numberOfWeek=v.getTag();
于 2012-12-11T07:02:59.933 に答える