【发布时间】:2018-01-01 16:31:06
【问题描述】:
我有一个自定义列表适配器,当用户单击片段中的一行时,我需要启动一个新的 Activity,但似乎 setOnItemClickListener 不起作用。
我尝试同时添加Toast 和Log,但在logcat 中看不到任何文本或在屏幕上看不到任何吐司。
我的代码有什么问题?
singolo_personaggio.xml(这是自定义行布局)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">
<LinearLayout
android:id="@+id/image_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="3dp">
<ImageView
android:id="@+id/lista_personaggi_icon"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_alignParentLeft="true"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<TextView
android:id="@+id/lista_personaggi_nome"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/image_container"
android:layout_toRightOf="@+id/image_container"
android:layout_marginLeft="10dp"
android:textStyle="bold"
android:textSize="22dp"
android:text="Name"
/>
<TextView
android:id="@+id/lista_personaggi_ruolo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/image_container"
android:layout_below="@+id/lista_personaggi_nome"
android:textSize="18sp"
android:text="Role"
/>
</RelativeLayout>
这是Java代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Integer pageToShow = getArguments().getInt(ARG_SECTION_NUMBER);
View rootView = inflater.inflate(R.layout.fragment_choose_character, container, false);
ListView listView = (ListView) rootView.findViewById(R.id.listViewPersonaggi);
personaggiDB = new DatabasePersonaggiHandler(getContext());
ArrayList<Personaggio> personaggi = personaggiDB.getAllPersonaggi(pageToShow);
// Adatto il personaggio alla grafica della lista
this.m_adapter = new PersonaggioAdapter(getContext(), R.layout.riga_personaggio, personaggi);
listView.setAdapter(this.m_adapter);
// Su ogni elemento della lista aggiungo il click
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(getContext(), "show this", Toast.LENGTH_LONG);
Log.d("MYAPP -->", "I am here");
// Recupero l'intero oggetto cliccato
//Personaggio personaggioScelto = m_adapter.getItem(position);
//Intent singoloPersonaggioIntent = new Intent(getContext(), SingoloPersonaggioActivity.class);
//singoloPersonaggioIntent.putExtra("PersonaggioObj", personaggioScelto);
//startActivity(singoloPersonaggioIntent);
}
});
return rootView;
}
【问题讨论】:
-
发布你的父布局..我的意思是主布局...片段膨胀的布局..
-
你需要
Toast.makeText(getContext(), "show this", Toast.LENGTH_LONG).show(); -
好的,但是日志应该来了??
标签: android onitemclicklistener