当前位置: 首页 > 知识库问答 >
问题:

Android碎片类怎么添加通话功能?

澹台镜
2023-03-14
/**
 * A simple {@link Fragment} subclass.
 * Activities that contain this fragment must implement the
 * {@link ussd.OnFragmentInteractionListener} interface
 * to handle interaction events.
 * Use the {@link ussd#newInstance} factory method to
 * create an instance of this fragment.
 */
public class ussd extends Fragment {
    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;
    private ListView listView;
    private ussdadaper ussd;
    private List<ussdz> ussdlist;

    private OnFragmentInteractionListener mListener;

    public ussd() {
        // Required empty public constructor
    }

    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment ussd.
     */
    // TODO: Rename and change types and number of parameters
    public static ussd newInstance(String param1, String param2) {
        ussd fragment = new ussd();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }


    @Override
    public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState )
    {
        View rootView = inflater.inflate(R.layout.fragment_ussd, container, false);

        listView = (ListView)rootView.findViewById(R.id.listView);
        ussdlist = new ArrayList<>();
        ussdlist.add(new ussdz(1,"*#44336#","Software Version Info"));

        listView.setOnItemClickListener(
                new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        String item = (String)listView.getItemAtPosition(position);
                        if(position == 0){

                        Intent callIntent = new Intent(Intent.ACTION_CALL);
                        callIntent.setData(Uri.parse("*#44336#"));
                        callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(callIntent);
                    }}
                }
        );


        ussd = new ussdadaper(getActivity(),ussdlist);
        listView .setAdapter(ussd);   //you should setthe adapter to the listview
        return rootView;
    }  

    // TODO: Rename method, update argument and hook method into UI event
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null;
    }


    public interface OnFragmentInteractionListener {
        public void onFragmentInteractionHome(Uri uri);
        public void openHome(View view);
    }
    }

    /**
     * This interface must be implemented by activities that contain this
     * fragment to allow an interaction in this fragment to be communicated
     * to the activity and potentially other fragments contained in that
     * activity.
     * <p/>
     * See the Android Training lesson <a href=
     * "http://developer.android.com/training/basics/fragments/communicating.html"
     * >Communicating with Other Fragments</a> for more information.
     */

错误日志:

所以如果我在呼叫活动中做错了什么,那么请帮助我。编译器没有显示错误。

共有1个答案

洪飞扬
2023-03-14

您的异常发生在此行:

String item = (String)listView.getItemAtPosition(position);

您正在尝试将不是字符串的内容转换为字符串。读取错误日志时显示:

ClassCastException:com.buckydroid.app.droidcpu.ussdz不能强制转换为java.lang.String

ussdz item = listView.getItemAtPosition(position);
 类似资料:
  • 在我的片段中,我想在加载一些数据后干杯,如下所示: 这只有在片段仍然附加到活动的情况下才有意义,即片段是可见的,而getActive()不会返回null。 我可以用或使用isAdded(),对吗?在这里,我想知道这两种方法之间的区别是什么,我最好使用哪一种?

  • 我可以使用一个片段作为一个活动吗?我已经创建了一个片段,但我希望它有像活动一样的功能,所以我使用片段扩展碎片活动。然而,我有一个带有碎片的导航抽屉。当我更改为“扩展碎片活动”时,我的代码有问题?请给我指路。

  • 对不起,我的英语不好。我如何并排显示片段,这样当用户点击片段a中的一个按钮时,片段B就显示出来了(80%)?

  • 我有一个带有tabhost和ViewPager的应用程序。我有一个标签,碎片作为固定。我必须添加标签,片段动态地在radiogroup中单击单选按钮从第一个片段。 MyPagerAdapter类: MyPagerFragment类: 我的问题是:第一次,页面添加正确,删除所有视图(第一个片段除外)并尝试添加另一组选项卡后,视图的片段不可见,getSupportFragmentManager.get

  • 当我添加fragment并使用以下代码从Fragment1转到Fragment2时: 当我从Fragment2回来时,我无法在Fragment1中检查暂停和毁灭,在Fragment1中检查恢复。我想用添加来做这件事,而不是用替换。请帮帮我。谢啦

  • 这似乎是一个具有挑战性的动画,但我有一种感觉,这可以很容易地完成。我正在尝试实现如下所示的片段之间的动画(请参阅第二和第三象限) 进入和退出并不难,但是预显示下一张和上一张卡片的屏幕以及无缝切换到下一张卡片超出了我的知识范围。如果有人制作过类似的动画,请给我一些指点。 编辑 Android的官方文档在点击时过渡,即当用户点击页面缩小以显示最后一页和上一页时,滑动将其移动到下一页。我的要求是将页面保