Fragment crash when click on item in listview

Mohamed Jawadi :

when i touch an item in the listView, the app crash

here's the logcat

2020-03-15 20:26:50.123 19174-19174/com.zeroXmohamed.TN19 E/Minikin: Could not get cmap table size! 2020-03-15 20:26:50.158 19174-19202/com.zeroXmohamed.TN19 E/MemoryLeakMonitorManager: MemoryLeakMonitor.jar is not exist! 2020-03-15 20:26:54.323 19174-19174/com.zeroXmohamed.TN19 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.zeroXmohamed.TN19, PID: 19174 android.content.res.Resources$NotFoundException: String resource ID #0x3 at android.content.res.Resources.getText(Resources.java:410) at android.content.res.HwResources.getText(HwResources.java:465) at android.widget.Toast.makeText(Toast.java:328) at com.zeroXmohamed.TN19.fragment.ChercheFragment$1.onItemClick(ChercheFragment.java:48) at android.widget.AdapterView.performItemClick(AdapterView.java:321) at android.widget.AbsListView.performItemClick(AbsListView.java:1217) at android.widget.AbsListView$PerformClick.run(AbsListView.java:3203) at android.widget.AbsListView$3.run(AbsListView.java:4151) at android.os.Handler.handleCallback(Handler.java:808) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:166) at android.app.ActivityThread.main(ActivityThread.java:7529) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

here's the code

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;
    }


}
CommonsWare :

Replace:

Toast.makeText(getContext(), position, Toast.LENGTH_SHORT).show()

with:

Toast.makeText(getContext(), Integer.toString(position), Toast.LENGTH_SHORT).show()

The version of makeText() that takes an int as the second parameter is expecting that int to be a string resource ID. Yours is not. So, you need to convert position to a String yourself.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=292214&siteId=1