Cuando toco un elemento en la vista de lista, el accidente aplicación
aquí está la Logcat
03/15/2020 20: 26: 50.123 desde 19.174 hasta 19.174 / com.zeroXmohamed.TN19 E / Minikin: No se pudo obtener tamaño de la tabla CMAP! 03/15/2020 20: 26: 50.158 19.174 a 19.202 / com.zeroXmohamed.TN19 E / MemoryLeakMonitorManager: MemoryLeakMonitor.jar no existe! 03/15/2020 20: 26: 54.323 19174-19174 / com.zeroXmohamed.TN19 E / Android Runtime: excepción fatal: Proceso principal: com.zeroXmohamed.TN19, PID: 19174 android.content.res.Resources $ NotFoundException: recurso de cadena ID # 0x3 en android.content.res.Resources.getText (Resources.java:410) en android.content.res.HwResources.getText (HwResources.java:465) en android.widget.Toast.makeText (Toast.java: 328) en com.zeroXmohamed.TN19.fragment.ChercheFragment $ 1.onItemClick (ChercheFragment.java:48) en android.widget.AdapterView.performItemClick (AdapterView.java:321) en android.widget.AbsListView.performItemClick (AbsListView.java: 1217) en android.widget.
Aquí está el código
package ...
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.zeroXmohamed.TN19.R;
public class ChercheFragment extends Fragment {
String countryList[] = {"India", "China", "australia", "Portugle", "America", "NewZealand"};
private ListView simpleList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_cherche, container,
false);
simpleList= rootView.findViewById(R.id.ListC);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, countryList);
simpleList.setAdapter(adapter);
simpleList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
Toast.makeText(getContext(), position, Toast.LENGTH_SHORT).show();
}
});
return rootView;
}
}
Reemplazar:
Toast.makeText(getContext(), position, Toast.LENGTH_SHORT).show()
con:
Toast.makeText(getContext(), Integer.toString(position), Toast.LENGTH_SHORT).show()
La versión de makeText()
que toma una int
como segundo parámetro está a la espera de que int
para ser un identificador de recurso de cadena. El suyo no es. Por lo tanto, es necesario convertir position
a un String
mismo.