listview onclick toast在片段中不起作用[重复]

Posted

技术标签:

【中文标题】listview onclick toast在片段中不起作用[重复]【英文标题】:listview onclick toast not working in fragment [duplicate] 【发布时间】:2020-01-14 05:06:43 【问题描述】:

我在 fragment android 中有一个 listview ,我添加了一个 onclick 事件不起作用。

每当我启动应用程序时,它都会给我应用程序停止工作的错误。

我关注这个帖子 Can not show Toast in OnItemClickListener inside Fragment 但不适合我

public class UserFragment extends Fragment implements View.OnClickListener 

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) 

    String[] user_listview_item = "Log In","Sign Up","Fund In","Fund Out","Wallet";

    View view = inflater.inflate(R.layout.fragment_user, container, false);
    TextView textView = (TextView) view.findViewById(R.id.testing1);


    final ListView user_list_view = (ListView) view.findViewById(R.id.user_listview_id);

    //arayadaptor
    ArrayAdapter<String> ListViewAdapter = new ArrayAdapter<String>(
        getActivity(),
        android.R.layout.simple_list_item_2,
            user_listview_item
    );
    user_list_view.setAdapter(ListViewAdapter);

    user_list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() 
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) 
            Toast.makeText(getActivity(), user_list_view.getItemAtPosition(i).toString(), Toast.LENGTH_LONG).show();
        
    );


    textView.setOnClickListener(this);
    return view ;




@Override
public void onClick(View view) 

    switch(view.getId())

        case R.id.testing1:
            Toast.makeText(getActivity(), "Click!", Toast.LENGTH_SHORT).show();
            Log.d("testing1","Result is FAIL 2");
            break;
        default:
            break;
    


感谢进步

【问题讨论】:

如果“它给我的应用程序停止工作错误”,你的意思是它正在崩溃,你需要查看the stack trace以确定崩溃的原因。 java.lang.IllegalStateException: ArrayAdapter 要求资源 ID 是 TextView 这是错误@MikeM。米 您使用的是simple_list_item_2 布局,而不仅仅是简单的&lt;TextView&gt;。您的意思是改用simple_list_item_1 吗? 在我更改 simple_list_item_1 后它可以工作了,谢谢兄弟 【参考方案1】:

你必须从String Array 获得一个项目,如下图Toast

user_list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() 
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) 
            Toast.makeText(getActivity(), user_list_view[i].toString(), Toast.LENGTH_LONG).show();
        
    );

【讨论】:

以上是关于listview onclick toast在片段中不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android 小部件按钮 Onclick Toast 消息

为 listview 定义 onlick:在 listView 级别的 Onclick 与自定义视图适配器内的 Onclick

Android:如何在 ListView 的列表项中为 Button 设置 onClick 事件

当写listview的onItemClick的方法时写Toast的参数context写成this出现can't resolve method ’make text(OnClickListene

在片段中添加 ListView

尝试在片段中实现 OnClick 侦听器 [重复]