2016-03-29 12 views
0

My log when the intent actually worksこれは私が非常に興味があるという奇妙な質問です。私はプロファイルのリストビューを持っています。特定のプロファイルをクリックすると、そのプロファイルを単独で表示したいのです。私がリストビューで項目を選択しようとすると、一般的には機能しませんが、何らかの奇妙な理由で時には(約10分の1)機能します。それはよりイライラする。誰もこの問題を抱えていましたか?ありがとうございました。 (私はこれに似た質問を投稿しました。それはまったく動かなかったので、重複しないでください、ありがとう)。リストビューonItemClickが期待どおりに機能しない

public class CowListView extends ListActivity { 

    RegisterCowAdapter cowAdapter; 
    private DataBaseHelper databaseHelper; 
    public ListView listView; 
    TextView student_Id; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.cow_list_item); 
     cowAdapter = new RegisterCowAdapter(this); 

     cowAdapter.open(); 
     updateCowUI(); 
     listView = (ListView) findViewById(android.R.id.list); 

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       student_Id = (TextView) view.findViewById(R.id.cowtagnolist); 
       String studentId = student_Id.getText().toString(); 
       Intent i = new Intent(view.getContext(), CowProfile.class); 
       Toast.makeText(CowListView.this, "Clicked", Toast.LENGTH_SHORT).show(); 
       i.putExtra("student_Id", Integer.parseInt(studentId)); 
       Log.d("StartingCow", studentId); 
       startActivityForResult(i, 0); 

      } 

     }); 

XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:descendantFocusability="blocksDescendants" 
    android:longClickable="true" 
    android:focusableInTouchMode="false" 
    android:clickable="false" 
    android:focusable="false"> 

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

    <TextView 
     android:id="@+id/cowtagnolist" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@color/black" 
     android:clickable="true"> 
    </TextView> 

    <TextView 
     android:id="@+id/cowdoblist" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"  
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="17dp" 
     android:clickable="true" 
     android:textColor="@color/black">  
    </TextView> 
</LinearLayout> 
+1

は、あなたがそれをデバッグしたのですか? –

+1

あなたのアイテムアダプタのレイアウトを投稿してください。私はあなたのレイアウトで動作する例を作ったが、あなたが持っているものを確認するためにあなたのアダプタレイアウトが必要です。 –

+0

こんにちは、返信ありがとう、しかし私は上に投稿したXMLにある単純なリストのアダプタを使用していますか?それとも、それが正しいのではない方法ですか?再度、感謝します。 – user3597639

答えて

0

あなたはuはそれをwrap_contentた場合、それはその子のサイズや幅を超えてイベントをクリックして取得することはありません、Match_parentとしてリストビューの幅を維持する必要があります。私はこれが問題だと思うもののために。 ur Listview単一行レイアウトにもwrap_contentの幅を持つ子ビューが含まれていると、問題が増える可能性があります。

+0

あなたの答えをありがとうが、まだそれほどうまくいかない。インテントは、しばらくの間、リストビューをランダムに押すと、なぜわからないのですか?実際に動作しているときに上記のログを追加しました – user3597639

+0

デバッグして、実際にclickListenerを使用しているかどうかを確認しましたか?または、Log.d( "Listview"、 "Clicked")を印刷します。あなたのOnItemClickListenerのすぐ内側 –

+0

しばらくしてから実際に動作すると、クリックされたことがログに表示されます!しかし、通常は絶対に何も起こりません。 – user3597639

0

多分問題はxmlにありますか? longClickable = "true" を アンドロイド:あなたの代わりに長いクリックいつものを行うときクリッカブル= "false" を

は1〜10の成功しクリックのように見えるが起こる

は私が

Androidは次の文字列を参照してください。それは私が私が私を定義していない、間違っていたものを考え出し

+0

あなたの答えをありがとうが、それでもスムーズに動作しない!あなたの答えをありがとう。それは私がランダムにリストビューをしばらく押し続けると、ランダムに動作しますか?実際に動作するときに上記のログを追加しました – user3597639

0

を助けるべきである - 私は右の質問を理解している場合

をクリッカブル=「true」を:真

アンドロイドに問題が変更クリッカブルを解決するために、子オブジェクトとルート項目が正しく表示されます。これは誰もが似たような問題で助けてくれることを願っています。 下図のように子項目が実装されている必要があります:ルートアイテムで

android:clickable="false" 
android:focusable="false" 
android:focusableInTouchMode="false" 

を:

android:clickable="false" 
android:descendantFocusability="blocksDescendants" 
android:focusable="false" 
android:focusableInTouchMode="false" 
関連する問題