RowView
をListAdapter
に入れてListView
にバインドした後、問題が発生しています。 ListView
に登録されているItemClick
イベントがあります。クリックすると、DetailView
が開かれると思います。しかし、ListView
アイテムをクリックしても何も起こらないので、私のクリックイベントが上書きされているようです。ここでカスタムのRowViewを膨張させると、ListViewのクリックイベントがオーバーライドされますか?
はListView
を使用していますExplorerActivity
クラスのサンプルです:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.ExplorerView);
exampleListView = FindViewById<ListView>(Resource.Id.exampleListView);
string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),
"TestDb.db3");
SQLiteConnection myConn = new SQLiteConnection(dbPath);
allItems = dbHelper.GetAllItems();
exampleListView.Adapter = new exampleListAdapter(this, allItems);
exampleListView.ItemClick += exampleListView_ItemClick;
}
サンプルListAdapter
コード:
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = items[position];
if (convertView == null)
{
convertView = context.LayoutInflater.Inflate(Resource.Layout.CustomRowView, null);
}
convertView.FindViewById<TextView>(Resource.Id.ItemTextView).Text = item.Name;
}
私はカスタムRowView
を膨らませる場合、私は「クリックイベントを失うんListView
の商品に登録されていますか?私はListAdapter
のカスタムRowView
全体にイベントを追加できませんでしたので、ListView.ItemClick
イベントと想定しました。
ListView
のクリックイベントはカスタムで無視されますかRowView
? RowView
の各インスタンスはまだListView
の項目ですが、正しいですか?
私は適切なオブジェクトを見つけることができません。 RowView
は事ではないので、私のカスタムを膨らませた後に、ListView
のアイテムをイベントにバインドするにはどうすればいいですか?RowView
?
エクスプローラのアクティビティにブレークポイントを設定しようとしましたが、決してヒットしません。そのため、イベントはもはやListView_ItemClick
に登録されていません。
私はこの夜、あなたの例を歩くとどんな質問で応答します。ありがとうございました! –
私はあなたのデモをダウンロードし、コードを歩きました。あなたは私の期待通りにコードを作っていますが、私はそうではありません。クリックイベントは登録されていません。ここにプロジェクトがあります:https://github.com/jmbarnes1987/Namely私のプロジェクトを見て、私が間違っていることを教えてください、本当に感謝します。 –
他のすべてのコントロールをRowViewに追加することは可能ですか?画像、textviews、ボタンなど、実際に行をクリックすることは不可能になっていますか?その理論の問題は、私はあなたの例のテキストをクリックすることができ、それはまだ動作します。 –