-3

IDEがmfragmentを認識できません。 getFragmentManager()をgetSupportFragmentManager()に変更しようとしました。それはIDEによってサポートされていませんでしたIDEがmfragment変数を認識しません。 getFragmentManager()をgetSupportFragmentManager()に変更しようとしました

package com.example.simerpreetjassal.bitsandpizzas2; 

import android.app.Activity; 
import android.app.FragmentTransaction; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.ShareActionProvider; 

public class MainActivity extends Activity { 
    private ShareActionProvider mShareActionProvider; 
    private String[] titles; 
    private ListView drawerList; 

    private class DrawerItemClickListener implements ListView.OnItemClickListener{ 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
      selectItem(position); 
     } 

    } 

    private void selectItem(int position) { 
     Fragment mfragment; 
     switch (position) { 
      case 1: 
       mfragment = new PizzaFragment(); 
       break; 
      case 2: 
       mfragment = new pastaFragment(); 
       break; 
      case 3: 
       mfragment = new pastaFragment(); 
       break; 
      default: 
       mfragment = new TopFragment(); 
       break; 
     } 
     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ft.replace(R.id.content_frame, mfragment); 
     ft.addToBackStack(null); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
     ft.commit(); 
    }; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     titles = getResources().getStringArray(R.array.titles); 
     drawerList = (ListView) findViewById(R.id.drawer); 
     drawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_activated_1, titles)); 
     drawerList.setOnItemClickListener(new DrawerItemClickListener()); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu_main, menu); 
     MenuItem menuItem =menu.findItem(R.id.action_share); 
     mShareActionProvider=(ShareActionProvider) menuItem.getActionProvider(); 
     setIntent("This is example text"); 
     return true; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item){ 
     switch (item.getItemId()){ 
      case R.id.action_create_order: 
       Intent intent=new Intent(this,orderActivity.class); 
       startActivity(intent); 
       return true; 
      case R.id.action_setttings: 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 

    } 
    private void setIntent(String text) { 
     Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("text/plain"); 
     intent.putExtra(Intent.EXTRA_TEXT, text); 
     mShareActionProvider.setShareIntent(intent); 
    } 

} 

IDEはmfragment varibleを認識しません。 getFragmentManager()をgetSupportFragmentManager()に変更しようとしました。それはあなたがDrawerClickListenerをキャストすることはできませんので、これはClassCastExceptionにつながるView.OnClickListenerする(ListView.OnItemClickListenerを実装している)だIDE

+1

を初期化していない - それは、任意のダイアログが表示されません。 LogCatビュー –

答えて

2

でサポートしていませんでした。

利用代わりにコードを次

drawerList.setOnItemClickListener(new DrawerClickListener()); 

をUPDATE更新質問に従って:

あなたはすべてのエラーmessages`を示す `drawerList

+0

でstacktraceをチェックする必要はありません。これはIDEによってアドバイスされていません。それはdrawerList.setOnItemClickListener(新しいDrawerClickListener())で動作しません。 –

+0

最初の問題は私の答えによって解決されます。 'java.lang.NullPointerException:仮想メソッドを呼び出そうとしました 'という空白のandroid.widget.ListView.setAdapter(android.widget.ListAdapter)'に関連するlogcatの2番目の問題。 drawerListが初期化されていません。 – j2ko

+0

こんにちは、私はそれを見ているかもしれない。 –

関連する問題