Android活动-如何在android中打开另一个活动?

巴彦·阿布阿瓦德(Bayan Abuawad)

嘿,我在Android领域还很陌生,无法从主活动中打开另一个活动。

主类:

    import android.content.Intent;
    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 java.util.HashMap;

    import layout.SongsPage;

    public class MainActivityFragment extends Fragment {

        ListView listView;
        HashMap<String, String> songs;

        Singer[] singeres=new Singer[4];

        public Singer[] getSingeres() {
            singeres[0]=new Singer("Dave Brubeck",1);
            singeres[0].AddingSong("Take Five","http://bff.vr2.net/jazz/Dave%20Brubeck%20Quartet%20featuring%20Paul%20Desmond%20-%20Buried%20Treasures%20()/07%20%20-%20Take%20Five.mp3");

            singeres[1]=new Singer("Jefferson Airplane",2);
            singeres[1].AddingSong("White Rabbit", "http://bff.vr2.net/jazz/Dave%20Brubeck%20Quartet%20featuring%20Paul%20Desmond%20-%20Buried%20Treasures%20()/07%20%20-%20Take%20Five.mp3");

            singeres[2]=new Singer("2Pac",3);
            singeres[2].AddingSong("Revolution","http://bff.vr2.net/jazz/Dave%20Brubeck%20Quartet%20featuring%20Paul%20Desmond%20-%20Buried%20Treasures%20()/07%20%20-%20Take%20Five.mp3");

            singeres[3]=new Singer("Mr. Probz",4);
            singeres[3].AddingSong("Waves","http://bff.vr2.net/jazz/Dave%20Brubeck%20Quartet%20featuring%20Paul%20Desmond%20-%20Buried%20Treasures%20()/07%20%20-%20Take%20Five.mp3");

            return singeres;
        }

        Singer[] Getsingeres=getSingeres();

        public MainActivityFragment() {
            songs = new HashMap<>();
            songs.put("Dave Brubeck - Take Five",
                    "http://bff.vr2.net/jazz/Dave%20Brubeck%20Quartet%20featuring%20Paul%20Desmond%20-%20Buried%20Treasures%20()/07%20%20-%20Take%20Five.mp3");
            songs.put("Jefferson Airplane - White Rabbit", "http://www.rraurl.com.br/media/musica/tracks/Jefferson%20Airplane%20-%201967%20-%20Surrealistic%20Pillow%20-%2010%20-%20White%20Rabbit.mp3");
            songs.put("2Pac - Revolution","http://thug2pac.narod.ru/mp3/Phenomeno/02_Revolution_www.thug2pac.narod.ru.mp3");
            songs.put("Mr. Probz - Waves", "http://mp3light.net/assets/songs/393000-393999/393222-waves-mr-probz.mp3");

            for(int i=0;i<singeres.length;i++){
                songs.put(Getsingeres[i].name,"http://bff.vr2.net/jazz/Dave%20Brubeck%20Quartet%20featuring%20Paul%20Desmond%20-%20Buried%20Treasures%20()/07%20%20-%20Take%20Five.mp3");
            }
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            final View v = inflater.inflate(R.layout.fragment_main, container, false);
            listView = (ListView) v.findViewById(R.id.listView);
            listView.setAdapter(new ArrayAdapter<String>(
                    getActivity(),
                    R.layout.listview_item,
                    R.id.textView,
                    songs.keySet().toArray(new String[songs.keySet().size()])));//keySet=key
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    //starting the mediaPlayer Activity with the song url
                    Intent intent = new Intent(getActivity(), SongsPage.class);



                    **startActivityForResult(intent, 1);**
                   //getActivity().overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.fade_out);
                }
            });
            return v;
        }

        @Override
        public void onResume(){
            super.onResume();
        }

        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            getActivity();
           if(resultCode == -1){
               Toast.makeText(
                       getActivity(),
                       "can't play that song",
                       Toast.LENGTH_LONG).show();

           }
        }
    }

SongsPage类:

package layout;

import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.telhai.eiran.mediaplayer.R;

/**
 * A simple {@link Fragment} subclass.
 * Activities that contain this fragment must implement the
 * {@link SongsPage.OnFragmentInteractionListener} interface
 * to handle interaction events.
 */
public class SongsPage extends Fragment{

    private OnFragmentInteractionListener mListener;

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


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_songs_page, container, false);
    }

    // TODO: Rename method, update argument and hook method into UI event
    public void onButtonPressed(Uri uri) {
        if (mListener != null) {
            mListener.onFragmentInteraction(uri);
        }
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        if (context instanceof OnFragmentInteractionListener) {
            mListener = (OnFragmentInteractionListener) context;
        } else {
            throw new RuntimeException(context.toString()
                    + " must implement OnFragmentInteractionListener");
        }
    }

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

    /**
     * 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.
     */
    public interface OnFragmentInteractionListener {
        // TODO: Update argument type and name
        void onFragmentInteraction(Uri uri);
    }
}

当我单击主页上的歌曲时,它在手机上显示错误提示

“很遗憾,[项目名称]已停止”

当我调试时,我发现问题出在哪里 startActivityForResult(intent, 1);

有人可以帮忙吗?

吉拉德·埃什科利(Gilad Eshkoli)

您正在尝试打开一个片段而不是一个活动。

片段是声明的类,可以存在于Activity中,如果您在其他Activity中也需要它们,则可以重用。片段是可以放在活动中的应用程序用户界面或行为的一部分,但是没有活动就无法实例化片段。

为了在Activity中实现一个Fragment,只需在Activity中的容器中进行类似的事务即可:

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();

YourFragment frag = new YourFragment ();
ft.replace(R.id.container_for_fragment, frag);
ft.commit();

如果您不希望使用Fragment,只需将SongsPage类更改为Activity。在这种情况下,请不要忘记在清单中声明它。或者,如果您确实需要它作为片段,请参考this

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中从一个活动向另一个活动发送和接收ArrayList?

来自分类Dev

如何在Android中的另一个活动中更新表

来自分类Dev

加载Webview后如何在android中启动另一个活动?

来自分类Dev

Android如何在“活动”后堆栈“树”中“跳转到另一个分支”?

来自分类Dev

加载Webview后如何在android中启动另一个活动?

来自分类Dev

如何在Android中更改另一个活动的文本视图和图像视图

来自分类Dev

Android如何在Arraylist中显示来自另一个活动的意图的图像?

来自分类Dev

如何在Android 4.4.2中的另一个对话框活动上显示对话框活动?

来自分类Dev

在关闭Android中的另一个活动后如何关闭主要活动?

来自分类Dev

如何在Android中将对象列表从一个活动传递到另一个活动?

来自分类Dev

如何在Android中将数据从一个活动发送到另一个活动的列表

来自分类Dev

如何在Android中将对象列表从一个活动传递到另一个活动?

来自分类Dev

如何在Xamarin Android中将图像从一个活动传递到另一个活动?

来自分类Dev

如何在android Kotlin中将对象从一个活动传递到另一个活动?

来自分类Dev

在Android中调用另一个活动

来自分类Dev

从android中的另一个活动设置textview

来自分类Dev

如何在另一个活动中打开警报对话框

来自分类Dev

如何在Android中的另一个活动中访问一个活动中的组件(例如时间选择器)?

来自分类Dev

Android-如何在一个活动中显示进度条,直到上传任务在另一个活动中完成

来自分类Dev

我如何在标签下加载另一个活动-Android

来自分类Dev

如何在Android活动的buttonclick上从另一个类调用方法?

来自分类Dev

如何在Android中使用列表项单击导航到另一个活动

来自分类Dev

如何在android另一个活动的操作栏上显示后退按钮

来自分类Dev

Android,如何检测到该活动是从另一个活动返回的?

来自分类Dev

Android:如何从活动访问以更新另一个活动的私有变量

来自分类Dev

如何启动服务并在Android中的另一个活动处停止它

来自分类Dev

如何从Android 30中的另一个应用程序启动活动

来自分类Dev

如何启动服务并在Android中的另一个活动处停止它

来自分类Dev

如何从Android中的另一个活动编辑框添加列表视图项?

Related 相关文章

  1. 1

    如何在Android中从一个活动向另一个活动发送和接收ArrayList?

  2. 2

    如何在Android中的另一个活动中更新表

  3. 3

    加载Webview后如何在android中启动另一个活动?

  4. 4

    Android如何在“活动”后堆栈“树”中“跳转到另一个分支”?

  5. 5

    加载Webview后如何在android中启动另一个活动?

  6. 6

    如何在Android中更改另一个活动的文本视图和图像视图

  7. 7

    Android如何在Arraylist中显示来自另一个活动的意图的图像?

  8. 8

    如何在Android 4.4.2中的另一个对话框活动上显示对话框活动?

  9. 9

    在关闭Android中的另一个活动后如何关闭主要活动?

  10. 10

    如何在Android中将对象列表从一个活动传递到另一个活动?

  11. 11

    如何在Android中将数据从一个活动发送到另一个活动的列表

  12. 12

    如何在Android中将对象列表从一个活动传递到另一个活动?

  13. 13

    如何在Xamarin Android中将图像从一个活动传递到另一个活动?

  14. 14

    如何在android Kotlin中将对象从一个活动传递到另一个活动?

  15. 15

    在Android中调用另一个活动

  16. 16

    从android中的另一个活动设置textview

  17. 17

    如何在另一个活动中打开警报对话框

  18. 18

    如何在Android中的另一个活动中访问一个活动中的组件(例如时间选择器)?

  19. 19

    Android-如何在一个活动中显示进度条,直到上传任务在另一个活动中完成

  20. 20

    我如何在标签下加载另一个活动-Android

  21. 21

    如何在Android活动的buttonclick上从另一个类调用方法?

  22. 22

    如何在Android中使用列表项单击导航到另一个活动

  23. 23

    如何在android另一个活动的操作栏上显示后退按钮

  24. 24

    Android,如何检测到该活动是从另一个活动返回的?

  25. 25

    Android:如何从活动访问以更新另一个活动的私有变量

  26. 26

    如何启动服务并在Android中的另一个活动处停止它

  27. 27

    如何从Android 30中的另一个应用程序启动活动

  28. 28

    如何启动服务并在Android中的另一个活动处停止它

  29. 29

    如何从Android中的另一个活动编辑框添加列表视图项?

热门标签

归档