Autore Topic: Problema ListFragment  (Letto 272 volte)

Offline Nickge

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 8
Problema ListFragment
« il: 12 Marzo 2014, 14:37:43 CET »
0
Salve a tutti.
Sono alle prese con lo sviluppo della mia prima app, quindi è molto probabile che il mio errore sia banale, ma, nonostante abbia spulciato su internet, non riesco a venirne a capo.
Vi riporto prima di tutto il logcat:

Codice: [Seleziona]
03-12 11:57:20.869    2163-2163/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.malatto.nicola.agriapp.app/com.malatto.nicola.agriapp.app.MainActivity}: java.lang.ClassCastException: com.malatto.nicola.agriapp.app.AgriListFragment cannot be cast to android.support.v4.app.LoaderManager$LoaderCallbacks
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassCastException: com.malatto.nicola.agriapp.app.AgriListFragment cannot be cast to android.support.v4.app.LoaderManager$LoaderCallbacks
            at com.malatto.nicola.agriapp.app.AgriListFragment.onActivityCreated(AgriListFragment.java:64)
            at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1508)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
            at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
            at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:566)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
            at android.app.Activity.performStart(Activity.java:5143)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
            at android.app.ActivityThread.access$600(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5103)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)

Detto questo vi posto il layout activity_main.xml

Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_marginRight="@dimen/activity_horizontal_margin"
   android:layout_marginLeft="@dimen/activity_horizontal_margin"
   android:layout_marginTop="@dimen/activity_vertical_margin"
   android:layout_marginBottom="@dimen/activity_vertical_margin"
   tools:context="com.malatto.nicola.agriapp.app.MainActivity">


    <fragment
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       class="com.malatto.nicola.agriapp.app.AgriListFragment"
       android:id="@+id/fragment"
       android:layout_alignParentLeft="true"
       android:layout_alignParentStart="true"
       android:layout_alignParentTop="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentEnd="true" />

</RelativeLayout>

Quello relativo al listfragment ossia fragment_list_layout.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

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

   <ListView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:id="@android:id/list"></ListView>

    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceLarge"
       android:gravity="center"
       android:text="@string/empty"
       android:textSize="25sp"
       android:id="@android:id/empty"
       android:layout_gravity="center_vertical"/>

</LinearLayout>

E questa è MainActivity.java

Codice (Java): [Seleziona]
import android.app.ActionBar;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends FragmentActivity {

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

       
    }

E questo AgriListFragment.java:

Codice (Java): [Seleziona]
import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;


public class AgriListFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor>
{
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);



    }


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

        View view = inflater.inflate(R.layout.fragment_list_layout,container,false);

        //agriListview = (ListView) view.findViewById(android.R.id.list);
        //emptyTextView = (TextView) view.findViewById(android.R.id.empty);

        //agriListview.setEmptyView(emptyTextView);

        return view;


    }


Ho postato solo le parti che mi sembra possano creare il problema. Nel caso posto il resto. Potete darmi una mano per favore?
Grazie mille in anticipo!

Offline FrancescoAndroid

  • Utente junior
  • **
  • Post: 69
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    GiMiSiS Interactive
  • Sistema operativo:
    Android 2.3.3
Re:Problema ListFragment
« Risposta #1 il: 12 Marzo 2014, 14:58:03 CET »
0
mmm non hai postato il manifest sicuramente non hai aggiunto l'activity li.
Codice (XML): [Seleziona]
                <activity
                        android:name="<package.nomeactivity>"
                        android:label="@string/app_name" >
                        <intent-filter>
                                <action android:name="android.intent.action.MAIN" />

                                <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                </activity>

solitamente la dimenticanza è quella

Offline Nickge

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 8
Re:Problema ListFragment
« Risposta #2 il: 12 Marzo 2014, 15:29:17 CET »
0
No no l'ho messa. Penso di aver risolto... Sbagliavo gli import. Ossia avevo messo un support v4 che mi sballava tutto.