2016-04-14 13 views
-5

textViewがGridViewに変更されると、アプリケーションがクラッシュし続けます。フラグメント内でGridViewを使用するとアプリケーションがクラッシュする

4月14日09:18:50.704 6903から6903/com.example.bernine.practicalsessions E/AndroidRuntime:致命的な例外:メインとjava.lang.ClassCastException:android.widget.GridViewがアンドロイドにキャストすることはできません。 com.example.bernine.practicalsessions.TechnologyFragment.onCreateViewでwidget.TextView(技術Fragment.java:38)

は、私はXMLファイルに間違った何かをやっていますか?

<?xml version="1.0" encoding="utf-8"?> 
<!--<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" />--> 

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:columnWidth="90dp" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
    /> 

そして、これが

フラグメントクラスです
public class ScienceFragment extends Fragment { 

    public static final String ARG_PAGE = "ARG_PAGE"; 

    private int mPage; 

    public static ScienceFragment newInstance(int page) { 
     Bundle args = new Bundle(); 
     args.putInt(ARG_PAGE, page); 
     ScienceFragment fragment = new ScienceFragment(); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mPage = getArguments().getInt(ARG_PAGE); 
     Toast.makeText(getContext(), "Science", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.activity_sports_fragment, container, false); 
     TextView textView = (TextView) view; 
     textView.setText("Fragment Science #" + mPage); 
     return view; 
    } 
} 

のTextViewがコメント解除されたとのGridViewがコメントしたときに、アプリがうまく働きました。

+0

を使用していることを意味しますか? – GVillani82

+0

04-14 09:18:50.704 6903-6903/com.example.bernine.practicalsessions E/AndroidRuntime:致命的除外:メイン java.lang.ClassCastException:android.widget.GridViewをandroid.widget.TextViewにキャストできません at com.example.bernine.practicalsessions.TechnologyFragment.onCreateView(TechnologyFragment.java:38) = – Techworld

+0

これは、「GridViewをTextViewにキャスト」しようとしていることを意味します。 このようにしてください: GridView gView =(GridView)view; – GVillani82

答えて

0

あなたFragment

TextView textView = (TextView) view; 
textView.setText("Fragment Science #" + mPage); 

、代わりにそのからのコードのこの部分を削除し、あなたのGridViewロジック

0

コードからあなたTextViewを削除し、あなたのGridViewを宣言し、あなたのGridViewのためのアダプタを作るを置きます。

TextView textView = (TextView) view; 
    textView.setText("Fragment Science #" + mPage); 

main java.lang.ClassCastException: android.widget.GridView cannot be cast to android.widget.TextView .... 

これは、あなたがまだあなたがエラーのスタックトレースを提供することができますのTextView

+0

onCreateまたはonCreateViewメソッドでgridViewを宣言する必要がありますか?私はフラグメントを使用しています – Techworld

+0

あなたはGrdiViewとしてやっているのと同じことができます。以前にGridviewを使ったことがありますか? http://stackoverflow.com/questions/19214620/android-imageadapter-with-gridview-in-fragment質問の回答を確認するか、http://www.perfectapk.com/android-gridview-viewholder.htmlをチェックしてください。 – Ameer

関連する問題