Я пробовал различные решения, упомянутые в SO, но все же моя проблема не устранена. Упомянутый ниже код.ListView - setOnItemLongClickListener не получает вызов
Example.java
package com.android.Example;
import java.util.Collections;
import java.util.List;
import com.android.Example.db.Tbl_example_Title_DAO;
import com.Example.database.handler.example_Titles;
import com.android.Example.adapter.ArrayListAdapter;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ListView;
public class Example extends Activity {
Tbl_example_Title_DAO tbl_example_title;
example_Titles example_Titles;
ListView lvlist;
List<String> exampleTitlesList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_singleitems_list);
lvlist = (ListView)findViewById(R.id.list);
tbl_example_title = new Tbl_example_Title_DAO(this);
lvlist.setClickable(true);
lvlist.setLongClickable(true);
lvlist.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
String s=exampleTitlesList.get(arg2);
Log.w("HHHHHHHHHHHHHH", s);
return true;
}
});
showlist();
}
private void showlist() {
example_Titles = new example_Titles();
example_Titles.setexample("E");
//List<example_Titles> exampleTitlesList = tbl_example_title.getTbl_example_Detailss(example_Titles);
exampleTitlesList = tbl_example_title.getTbl_example_Details_str("E");
Collections.sort(exampleTitlesList);
ArrayListAdapter arrayAdapter = new ArrayListAdapter(Example.this, exampleTitlesList);
lvlist.setAdapter(arrayAdapter);
arrayAdapter.notifyDataSetChanged();
}
}
listview_singleitems_list.xml файл
<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="match_parent"
>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/transparent"
android:dividerHeight="10dp"
android:drawSelectorOnTop="true"
android:footerDividersEnabled="false"
android:padding="10dp"
android:scrollbarStyle="outsideOverlay" />
</RelativeLayout>
Каждая строка ListView - amc.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/lvi"
android:descendantFocusability="blocksDescendants"
>
<TextView
android:id="@+id/tvCategory_listItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"/>
</LinearLayout>
данные становятся заселены, но не реагируют на любой нажмите события.
Просьба помочь мне понять, чего мне не хватает в коде. Thanks
Обновление 1 - Попытался добавить метод ниже. Но не получилось.
lvlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
final String item = (String) parent.getItemAtPosition(position);
Log.w("HHHHHHHHHHHHHH", item);
}
});
Update 2 - Я пытался использовать приведенный ниже код и теперь OnClick работает fine.So, вопрос с пути я создал файл amc.xml только. Если кто-нибудь знает, что это вопрос, пожалуйста, дайте мне знать
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, categoryTitlesList);
lvlist.setAdapter(adapter);
adapter.notifyDataSetChanged();
вместо
ArrayListAdapter arrayAdapter = new ArrayListAdapter(ExpenseCategoryList.this, categoryTitlesList);
lvlist.setAdapter(arrayAdapter);
arrayAdapter.notifyDataSetChanged();
я пытался. Это не сработало. – Prem
после очистки и перезагрузки eclipse – Elltz
Пробовал чистить, строить и перезапускать. Не работал. – Prem