2017-09-05 1 views
2

Wie kann ich diesen Overload Fehler beheben, ich habe Overload Resolution Ambiguity Fehler, ich es in meinem Projekt synchronisieren und reinigen und neu erstellen, aber es ist mir unten Fehler, ich füge Hauptaktivitätscode in Kotlin mit 2 Layout Aktivität hier ein Foto des Fehlers ist Overload Resolution Ambiguity error Overload Resolution Mehrdeutigkeit Fehler in Kotlin

Hier wird ein Haupt activity.kt

package com.hussein.startup 
import android.content.Context 
import android.content.Intent 
import android.support.v7.app.AppCompatActivity 
import android.os.Bundle 
import android.view.LayoutInflater 
import android.view.View 
import android.view.ViewGroup 
import android.widget.BaseAdapter 
import kotlinx.android.synthetic.main.activity_food_details.view.* 
import kotlinx.android.synthetic.main.activity_main.* 
import kotlinx.android.synthetic.main.food_ticket.view.* 


class MainActivity : AppCompatActivity() { 

var adapter:FoodAdapter?=null 
var listOfFoods =ArrayList<Food>() 
override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 

    // load foods 


listOfFoods.add(Food("Coffee"," Coffee preparation is",R.drawable.a)) 
    ..... 

    gvListFood.adapter =adapter 

} 


class FoodAdapter:BaseAdapter { 
    var listOfFood= ArrayList<Food>() 
    var context:Context?=null 
    constructor(context:Context,listOfFood:ArrayList<Food>):super(){ 
     this.context=context 
     this.listOfFood=listOfFood 
    } 
    override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View { 
     val food = this.listOfFood[p0] 
     var inflator = context!!.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater 
     var foodView= inflator.inflate(R.layout.food_ticket,null) 
     foodView.ivFoodImage.setImageResource(food.image!!) 
     foodView.ivFoodImage.setOnClickListener { 

      val intent = Intent(context,FoodDetails::class.java) 
      intent.putExtra("name",food.name!!) 
      intent.putExtra("des",food.des!!) 
      intent.putExtra("image",food.image!!) 
      context!!.startActivity(intent) 
     } 
     foodView.tvName.text = food.name!! 
     return foodView 

    } 

    override fun getItem(p0: Int): Any { 
     return listOfFood[p0] 
    } 

    override fun getItemId(p0: Int): Long { 
     return p0.toLong() 
    } 

    override fun getCount(): Int { 

     return listOfFood.size 
    } 

    } 
} 

Hier ist ein Layout XML

1-activity_food_details.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".FoodDetails"> 

<ImageView 
    android:id="@+id/ivFoodImage" 
    android:layout_width="50pt" 
    android:layout_height="50pt" 
    android:layout_marginTop="52dp" 
    app:layout_constraintTop_toTopOf="parent" 
    app:srcCompat="@drawable/c" 
    app:layout_constraintEnd_toEndOf="parent" 
    android:layout_marginEnd="8dp" 
    app:layout_constraintStart_toStartOf="parent" 
    android:layout_marginStart="8dp" 
    app:layout_constraintHorizontal_bias="0.501" /> 

<TextView 
    android:id="@+id/tvName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginEnd="8dp" 
    android:layout_marginStart="8dp" 
    android:text="TextView" 
    android:textColor="@color/colorPrimary" 
    android:textSize="24sp" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintHorizontal_bias="0.501" 
    app:layout_constraintStart_toStartOf="parent" 
    android:layout_marginTop="48dp" 
    app:layout_constraintTop_toBottomOf="@+id/ivFoodImage" /> 

<TextView 
    android:id="@+id/tvDetails" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginEnd="8dp" 
    android:layout_marginStart="8dp" 
    android:layout_marginTop="56dp" 
    android:text="TextView" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/tvName" /> 

</android.support.constraint.ConstraintLayout> 

2-food_ticket.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="63pt" 
android:layout_height="wrap_content" 
android:background="@color/gray" 
android:orientation="vertical" 
android:padding="3pt"> 

<LinearLayout 
    android:gravity="center" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background" 
    android:orientation="vertical"> 

    <ImageView 
     android:id="@+id/ivFoodImage" 
     android:layout_width="50pt" 
     android:layout_height="50pt" 
     app:srcCompat="@drawable/c" /> 

    <TextView 
     android:id="@+id/tvName"  
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="Coffe" 
     android:textSize="20sp" /> 
</LinearLayout> 
</LinearLayout> 

Antwort

9

Sie definieren ivFoodImage in beiden Layouts. Und Sie importieren ihre Definitionen wie so ...

import kotlinx.android.synthetic.main.activity_food_details.view.* 
import kotlinx.android.synthetic.main.food_ticket.view.* 

Betrachten wir den Namen in einem der Layouts ändern oder explizit zu werden in der Definition von foodView oder Entfernen der Import mit activity_food_details, wenn es nicht verwendet wird, ist.