2017-08-09 5 views
-2

は、私は私のアプリでKotlinにフラグメントをロードするには? (ItemOneFragment.newInstanceでフラグメント:必須 型の不一致:

val bottomNavigationView = findViewById<View>(R.id.navigation) as BottomNavigationView 
    BottomNavigationViewHelper.removeShiftMode(bottomNavigationView) 
    bottomNavigationView.setOnNavigationItemSelectedListener { item -> 
     var selectedFragment: Fragment? = null 
     when (item.itemId) { 
      R.id.action_item1 -> selectedFragment = ItemOneFragment.newInstance() 
      R.id.action_item2 -> selectedFragment = ItemTwoFragment.newInstance() 
      R.id.action_item3 -> selectedFragment = ItemThreeFragment.newInstance() 
      R.id.action_item4 -> selectedFragment = ItemThreeFragment.newInstance() 
     } 
     val transaction = supportFragmentManager.beginTransaction() 
     transaction.replace(R.id.frame_layout, selectedFragment) 
     transaction.commit() 
     true 
    } 

    //Manually displaying the first fragment - one time only 
    val transaction = supportFragmentManager.beginTransaction() 
    transaction.replace(R.id.frame_layout, ItemOneFragment.newInstance()) 
    transaction.commit() 

ItemOneFragment.java

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
public class ItemOneFragment extends Fragment { 
public static ItemOneFragment newInstance() { 
    ItemOneFragment fragment = new ItemOneFragment(); 
    return fragment; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.fragment_item_one, container, false); 
}} 

を下のバーを追加することですが、私はエラーを取得していますkotlinに新しいです) 私はすべてのものを試しました ありがとうございます。

+0

'ItemOneFragment.newInstance()'メソッドを表示できますか? –

+0

ChristianBrüggemann 私はフラグメントを作った – Darshan

+0

はい、しかし、あなたはそのメソッドのコードを投稿できますか? –

答えて

0

bottomNavigationViewコードを含むファイルにandroid.app.Fragmentをインポートしているようです。 ItemOneFragment.newInstance()android.support.v4.app.Fragmentを返します。これはandroid.app.Fragmentと互換性がありません。

インポートをandroid.support.v4.app.Fragmentに変更すると問題が解決するはずです。

関連する問題