2014-06-17 1 views
1

나는 안드로이드에 대한 첫 걸음을 밟았습니다 ... 이미 답변 된 질문 중 일부를 읽었으며 많은 팁을 제공하지만 문제를 해결하는 방법을 찾지 못했습니다.LISTVIEW - onItemClick이 작동하지 않습니다.

활동 Categories.java에서 데이터베이스에서 시작하여 작성된 목록보기가 있습니다. listview가 제대로 표시되면 OnItemClick에서 다른 활동을 시작하고 싶지만 토스트까지 표시 할 수 없다는 것을 깨달았습니다.

나는 정말로 당신이 나를 도울 수 있기를 바란다. 나는 나의 오류가 어디에 있는지 정말로 알지 못한다! 미리 감사드립니다. 여기

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:descendantFocusability="blocksDescendants"> 

<TextView 
    android:id="@+id/listitemTextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    android:includeFontPadding="false" 
    android:padding="5pt" 
    android:scrollHorizontally="false" 
    android:textSize="10pt" /> 

</LinearLayout> 

과 categories.java 파일의 XML 파일 :은 XML 목록 항목의 파일 여기

package com.example.myshopping; 

import java.util.ArrayList; 

import android.os.Bundle; 
import android.content.Intent; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.app.Activity; 
import android.view.View; 
import android.widget.*; 
import android.widget.AdapterView.OnItemClickListener; 

public class Categories extends Activity{ 


@Override 
protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.categories); 
    final ListView lista= (ListView) findViewById(R.id.id_categorie); 

    MioDatabaseHelper myHelper; 

    myHelper= new MioDatabaseHelper(this); 

    final SQLiteDatabase db= myHelper.getReadableDatabase(); 

    String [] columns_cat ={"nome_categoria"}; 

    Cursor cursor= db.query("categorie", columns_cat, null, null, null, null, null); 

    int len= cursor.getCount(); 

    cursor.moveToFirst(); 

    final ArrayList <String> array_cat= new ArrayList<String>(); 

    for (int i=0; i<(len); ++i){ 
     array_cat.add(cursor.getString(0)); 
     cursor.moveToNext(); 
    } 

    ArrayAdapter<String> myadapter= new ArrayAdapter<String>(this, R.layout.listitem, R.id.listitemTextView, array_cat); 


    lista.setAdapter(myadapter); 
    lista.setOnItemClickListener(new OnItemClickListener() { 


     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 


      Toast.makeText(getApplicationContext(), "hello toast!!!!", Toast.LENGTH_LONG).show(); 

      } 

    }); 



    } 

과 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".Categories" > 

    <ListView 
     android:id="@+id/id_categorie" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:textIsSelectable="true"> 


    </ListView> 

</RelativeLayout> 
다음

내 코드입니다

답변

0

코드에 기본 불일치가 표시됩니다.

및 배열 어댑터에서 0 :

ArrayAdapter<String> myadapter= new ArrayAdapter<String>(this, R.layout.listitem, R.id.listitemTextView, array_cat); 

R.layout.categories 로 변경 R.layout.listitem 또는 다른 생성자를 사용합니다.

0

android:textIsSelectable="true"android:descendantFocusability="blocksDescendants" 속성이 필요합니까? 그것들을 잘못 사용하면 초점 문제가 발생할 수 있으며 클릭 수신기가 작동하지 않습니다. 둘 다 제거하십시오.

또한리스트 항목은 LinearLayout 하나만 아이 때문에 단지 폭 match_parent 설정된 높이 wrap_content 패딩과 함께 구비 될 수 TextView 포함한다.
<relativeLayout> attributes.. <textView> attributes.. </textView> </relativeLayout>

<TextView> attributes </TextView> 사람 : P 한 것은이 변경
하는지 테스트하기 위해 다른 XML을 생성하려고 : 또한이리스트는 때때로 리키 될 수 사촌 텍스트 뷰의 모양, 그냥 부모 Noode없이 그 텍스트 뷰와 XML을 생성 specyfy하려면

+0

나는 당신의 제안을 따르고 이제는 효과가 있습니다! – jessyjemy

0


기본적으로 당신은 독립형을 원합니다 TextView