简体   繁体   中英

i call another activity in a listview with fragments

hellow my name is carlos I need help to connect in the listview another activities,all code is well under this part

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch (position){
                case 0:
                    Intent i = new Intent(getActivity(),dia1.class);
                    startActivity(i);

Fragment2.java:

public class Fragment2 extends Fragment {
    ListView listView;
    DiasListAdapter adapter;

    private final String LOG_TAG = "test";

    public Fragment2() {
    }

    @Override
    public void onAttach (Activity activity) {
        super.onAttach(activity);
        Log.v(LOG_TAG, "onAttach");
    }

    @Override
    public void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.v(LOG_TAG, "onCreate");
    }

    @Override
    public View onCreateView (LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
        final View rootView = inflater.inflate(R.layout.fragment2_layout, container, false);
        Log.v(LOG_TAG, "onCreateView");


        DiasList diaslist_datos [] = new DiasList[]{
                new DiasList(R.drawable.icolist,"Día 1"),
                new DiasList(R.drawable.icolist,"Día 2"),
                new DiasList(R.drawable.icolist,"Día 3"),
                new DiasList(R.drawable.icolist,"Día 4"),
                new DiasList(R.drawable.icolist,"Día 5"),
                new DiasList(R.drawable.icolist,"Día 6"),
                new DiasList(R.drawable.icolist,"Día 7")

        };


        final DiasListAdapter adapter = new DiasListAdapter(this.getActivity(), R.layout.listview_item , diaslist_datos);
        listView = (ListView) rootView.findViewById(R.id.ListView);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                switch (position){
                    case 0:
                        Intent i = new Intent(getActivity(),dia1.class);
                        startActivity(i);

                }
            }
        });







        return rootView;
    }

DiasList.java:

public class DiasList {

    public int icon;
    public String title;
    public DiasList(){
        super();

    }

    public DiasList(int icon, String title){
        super();
        this.icon = icon;
        this.title = title;
    }
}

DiasListAdapter.java:

public class DiasListAdapter extends ArrayAdapter<DiasList> {
    Context myContext;
    int mylayoutResourceID;
    DiasList mydata[] = null;

    public DiasListAdapter(Context context,int layoutResourceID,DiasList[] data){
        super(context,layoutResourceID,data);

        this.myContext = context;
        this.mylayoutResourceID = layoutResourceID;
        this.mydata = data;
    }

    public View getView(int position, View convertView, ViewGroup parent){
        View row = convertView;
        DietListHolder holder = null;

        if(row == null){
            LayoutInflater inflater = ((Activity)myContext).getLayoutInflater();
            row = inflater.inflate(mylayoutResourceID, parent,false);

            holder = new DietListHolder();
            holder.imagen = (ImageView) row.findViewById(R.id.image);
            holder.textView = (TextView) row.findViewById(R.id.txt);
            row.setTag(holder);

        }else{
            holder = (DietListHolder)row.getTag();
        }

        DiasList diasList = mydata[position];
        holder.textView.setText(diasList.title);
        holder.imagen.setImageResource(diasList.icon);

       return row;
    }
    static class DietListHolder{
        ImageView imagen;
        TextView textView;
    }

}

dia1.java:

public class dia1 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dia1);

    }
}

listview_item.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <ImageView
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/image"
        android:src="@drawable/icolist"/>


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txt"
        android:textAppearance="@style/TextAppearance.AppCompat.Title"
        android:layout_marginLeft="80dp"
        android:layout_marginTop="22dp"
        android:textColor="#000000"/>

</RelativeLayout>

The error is : plis help me!

 --------- beginning of crash 05-12 11:09:47.003 2426-2426/cqdevelopers.incrediblediet E/AndroidRuntime: FATAL EXCEPTION: main Process: cqdevelopers.incrediblediet, PID: 2426 android.content.ActivityNotFoundException: Unable to find explicit activity class {cqdevelopers.incrediblediet/cqdevelopers.incrediblediet.dia1}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1794) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512) at android.app.Activity.startActivityForResult(Activity.java:3917) at android.support.v4.app.ActivityCompatJB.startActivityForResult(ActivityCompatJB.java:30) at android.support.v4.app.ActivityCompat.startActivityForResult(ActivityCompat.java:162) at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:915) at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:1010) at android.support.v4.app.Fragment.startActivity(Fragment.java:921) at android.support.v4.app.Fragment.startActivity(Fragment.java:910) at cqdevelopers.incrediblediet.Fragment2$1.onItemClick(Fragment2.java:72) at android.widget.AdapterView.performItemClick(AdapterView.java:310) at android.widget.AbsListView.performItemClick(AbsListView.java:1145) at android.widget.AbsListView$PerformClick.run(AbsListView.java:3042) at android.widget.AbsListView$3.run(AbsListView.java:3879) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

add break under startActivity(i);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch (position){
                case 0:
                    Intent i = new Intent(getActivity(),dia1.class);
                    startActivity(i);
                 break;

            }
        }
    });

Try this!!!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM