我有一个自定义列表适配器,当用户点击片段中的一行时,我需要启动一个新的活动,但似乎setOnItemClickListener
不起作用。
我已尝试添加Toast
和Log
,但无法在屏幕上看到任何文本或屏幕上的任何toast。
我的代码出了什么问题?
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;
}
答案 0 :(得分:0)