0

カスタムリストビューを取得するためにカーソルアダプタを使用しています.2つのxmlファイルがあります。

a.xmlにLinearlayoutListview

y.xmlにはLinearlayout2つありTextviewます。

リストビューが表示されているときに選択できませんsetOnItemClickListener。リストビューからアイテムを選択するために使用しています。

android:focusable="false私はこれを検索しようとしましたが、それらの多くが同じ問題を抱えていることがわかりました。これをxmlのtextviewとプログラムの両方に適用してみました。

この問題の修正は何ですか?

a.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroller"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >

     <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           />

               <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           />
     </LinearLayout>
    </ScrollView>

y.xml

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>
4

3 に答える 3

0

これを見て、うまくいけば、いくつかの指針が得られるはずですが、残念ながらJava全体を見ないと多くのことはできません!:

public class CRUDonDB extends ListActivity {

private final String SAMPLE_DB_NAME = "myFriendsDb";
private final String SAMPLE_TABLE_NAME = "friends";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ListView lv = getListView();

    ArrayList<String> results = new ArrayList<String>();
    SQLiteDatabase sampleDB = null;

    try {
        sampleDB =  this.openOrCreateDatabase(SAMPLE_DB_NAME, MODE_PRIVATE, null);

        sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
                SAMPLE_TABLE_NAME +
                " (LastName VARCHAR, FirstName VARCHAR," +
                " Country VARCHAR, Age INT(3));");

        sampleDB.execSQL("INSERT INTO " +
                SAMPLE_TABLE_NAME +
                " Values ('Doe','John','UK',22);");
        sampleDB.execSQL("INSERT INTO " +
                SAMPLE_TABLE_NAME +
                " Values ('Smith','Robert','UK',20);");
        sampleDB.execSQL("INSERT INTO " +
                SAMPLE_TABLE_NAME +
                " Values ('Walton','Henry','UK',10);");

        Cursor c = sampleDB.rawQuery("SELECT FirstName, LastName, Country, Age FROM " +
                SAMPLE_TABLE_NAME +
                " where Age >= 10 LIMIT 5", null);

        if (c != null ) {
            if  (c.moveToFirst()) {
                do {
                    String firstName = c.getString(c.getColumnIndex("FirstName"));
                    String lastName = c.getString(c.getColumnIndex("LastName"));
                    String country = c.getString(c.getColumnIndex("Country"));
                    int age = c.getInt(c.getColumnIndex("Age"));
                    results.add("" + firstName + " " + lastName + " " + country + " " +age);
                }while (c.moveToNext());
            } 
        }

        this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,results));

        lv
        .setOnItemClickListener(mOnItemListViewClickListener);


    } catch (SQLiteException se ) {
        Log.e(getClass().getSimpleName(), "Could not create or Open the database");
    } finally {
        if (sampleDB != null) 
            sampleDB.execSQL("DELETE FROM " + SAMPLE_TABLE_NAME);
            sampleDB.close();
    }
}

private final OnItemClickListener mOnItemListViewClickListener = new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

        String item = (String) parent.getItemAtPosition(position);
        Toast.makeText(getBaseContext(), "You have chosen " +item, Toast.LENGTH_LONG).show();
};
};

}
于 2012-09-17T14:37:39.173 に答える
0

削除<scrollview>すると、それは魅力のように機能しました。

于 2012-09-21T17:56:02.717 に答える
0

たぶん、この問題は次のようなものです:展開可能なリストビュー android のボタン

これを試してください:

mTextView.setFocuseable(false);

xml ではなく .java クラスで。

于 2012-09-17T12:35:09.033 に答える