-1

私はこのコードを手に入れました:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_clicked);
    String query = "SELECT ROWID _id, linie"
            + " FROM linie";

    ArrayList<String> HaltestellenListe = CursorToArray(getApplicationContext(), query, new String[] {});

    final ListView lvD = (ListView) findViewById(R.id.lvClicked);


    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.activity_clicked, R.id.tvClicked, HaltestellenListe);
    lvD.setAdapter(arrayAdapter);
    lvD.setDividerHeight(8);



    lvD.setOnItemClickListener(new OnItemClickListener() { 
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                  String linie = lvD.getItemAtPosition(position).toString();

                 }
        });






}

public ArrayList<String> CursorToArray(Context ApplicationContext, String query, String[] whereClause){
    ArrayList<String> ArrayList = new ArrayList<String>();

    DataBaseHelper dbHelper = new DataBaseHelper(getBaseContext());

    Cursor c = dbHelper.dbHelper(ApplicationContext).rawQuery(query, whereClause);
    dbHelper.close();

    c.moveToFirst();


    while (!c.isAfterLast()){

        if (c.isNull(c.getColumnIndex("linie")) == false){
            ArrayList.add(c.getString(c.getColumnIndex("linie")));  
        }


        c.moveToNext();
    }
    c.close();

    return ArrayList;
}

setonitemclicklistener を使用して、クリックされた位置の文字列を取得します。この文字列を次のような新しい文字列クエリに使用するにはどうすればよいですか:

lvD.setOnItemClickListener(new OnItemClickListener() { 
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                  setContentView(R.layout.activity_clicked);
                  String newQuery = "SELECT ROWID _id, linie" + "FROM linie" + "WHERE name =" + lvD.getItemAtPosition(position).toString();                   
                  ArrayList<String> ClickedList = CursorToArray(getApplicationContext(), newQuery, new String[] {});
                  final ListView lvD = (ListView) findViewById(R.id.lvClicked);                 
                  ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.activity_clicked, R.id.tvClicked, ClickedList);
                  lvD.setAdapter(arrayAdapter);
                  lvD.setDividerHeight(8);

                 }
        });

新しいテキストを同じリストビュー内に配置したい 基本的に、新しいクエリ内の最初のクエリからの文字列を使用したい。私はJavaに非常に慣れていないので、助けてください。

4

1 に答える 1

1
  1. 以下のように、クエリの名前の値を引用符で囲み、その間にスペースを入れる必要があります。

    String newQuery = "SELECT ROWID _id, linie" + " FROM linie " + 
               " WHERE name = '" + lvD.getItemAtPosition(position).toString()+"'";
    
  2. あなたlvdは最終的なので、メソッド内で直接利用できます。以下の行を削除して再度検索します。

    //remove this line
    final ListView lvD = (ListView) findViewById(R.id.lvClicked); 
    
于 2012-11-21T16:22:02.207 に答える