2017-09-30 55 views
-1

所以我想我有一些范围问题。 我正在尝试使用函数setZipEdit在我的活动中设置R.id.zipHoldereditText。我只是在设置代码时遇到问题才能做到这一点。以下是我目前没有工作的内容。 mZipHold是回来不initialized我虽然是在override写在Kotlin EditText的问题

修订

class SecondActivity : AppCompatActivity() { 
lateinit var townInfo:JsonArray<JsonObject> 


override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity2) 


    SET_TOWN.setOnClickListener {v -> setTowns()} 
    GET_TOWNS.setOnClickListener {v -> retrieveTowns()} 


} 
fun setZipEdit(zipEdit:String){ 
    Log.d("SZE",zipEdit) 
    zipHolder.setText(zipEdit) 



    //mZipHold.setText(zipEdit,TextView.BufferType.EDITABLE) 

} 

显示java.lang.NullPointerException:试图调用虚拟方法 “android.view.Window $回调android.view.Window.getCallback()' 空对象引用 at android.support.v7.app.AppCompatDelegateImplBase。(AppCompatDelegateImplBase.java:117) 在 android.support.v7.app.AppCompatDelegateImplV9。(AppCompatDelegateImplV9.java:149) 在 android.support.v7.app.AppCompatDelegateImplV11。(AppCompatDelegateImplV11.java:29) 在 android.support.v7.app .AppCompatDelegateImplV14。(AppCompatDelegateImplV14.java:54) 在 android.support.v7.app.AppCompatDelegateImplV23。(AppCompatDelegateImplV23.java:31) 在 android.support.v7.app.AppCompatDelegateImplN。(AppCompatDelegateImplN.java:31) at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate。的java:198) 在 android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183) 在 android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519) 在 机器人.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190) 在

com.example.sdfsdf.listview.SecondActivity ._ $ _ findCachedViewById(SecondActivity.kt:0) 在 com。示例.sdfsdf.listview.SecondActivity.setZipEdit(SecondActivity.kt:44) at com.example.sdfsdf.listview.SecondActivity $ MyCustomAdapter $ onCreateViewHolder $ 1.onClick(SecondActivity.kt:124) at android.view.View.performClick(View.java:6256) at android.view.View $ PerformClick.run(View.java:24697) at android.os.Handler.handleCallback(Handler.java:789) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper .loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit。Java的:767)

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" 
    android:background="#FFFFFF" 
    tools:layout_editor_absoluteX="0dp" 
    tools:layout_editor_absoluteY="25dp"> 

    <ImageView 
     android:id="@+id/returnimage" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="20dp" 
     android:contentDescription="logoforZip" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     app:srcCompat="@drawable/ic_new_icon_plain" /> 

    <EditText 
     android:id="@+id/zipHolder" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginEnd="10dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="20dp" 
     android:ems="10" 
     android:inputType="number" 
     android:text="ZIP HERE" 
     android:textAlignment="center" 
     android:textColor="#000000" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toEndOf="@+id/returnimage" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <Button 
     android:id="@+id/SET_TOWN" 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_marginTop="8dp" 
     android:text="SET TOWN" 
     app:layout_constraintEnd_toEndOf="@+id/zipHolder" 
     app:layout_constraintStart_toStartOf="@+id/zipHolder" 
     app:layout_constraintTop_toBottomOf="@+id/zipHolder" /> 

    <Button 
     android:id="@+id/GET_TOWNS" 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_marginTop="8dp" 
     android:text="LIST NEARBY TOWNS" 
     app:layout_constraintEnd_toEndOf="@+id/SET_TOWN" 
     app:layout_constraintStart_toStartOf="@+id/SET_TOWN" 
     app:layout_constraintTop_toBottomOf="@+id/SET_TOWN" /> 

    <View 
     android:id="@+id/splitbar" 
     android:layout_width="fill_parent" 
     android:layout_height="6dp" 
     android:layout_marginEnd="8dp" 
     android:layout_marginStart="8dp" 
     android:background="#c0c0c0" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/GET_TOWNS" /> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/zipList" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginEnd="8dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="8dp" 
     android:background="#222222" 
     android:scrollbars="vertical" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/splitbar" /> 

</android.support.constraint.ConstraintLayout> 
+0

为什么你不使用kotlinextension @BostonMacOSX – UltimateDevil

+0

我有他们在那里,但有挑选物品,我把我的布局。 – BostonMacOSX

+0

你可以用这里的导入或XML文件更新你的代码 – UltimateDevil

回答

1

好,但使用kotlinextension是一个更好的方式来做到这一点,我认为你需要做两件事情可以解决你的问题

第一

import kotlinx.android.synthetic.main.activity_main2.*

我想,你已经做了

第二,而不是你的初始化通过Editext直接findViewById使用作为

fun setZipEdit(zipEdit:String){ 
     Log.d("SZE",zipEdit) 
     Log.d("mzh",mZipHold.toString()) 
     zipHolder.setText(zipEdit) 

     //mZipHold.setText(zipEdit,TextView.BufferType.EDITABLE) 

    } 

你可以只使用其ID访问您的看法。让我试试这个,让我知道如果作品

+0

你好zipHOlder.text需要编辑!但zipEdit是一个字符串..所以setText(字符串)是要走的路。 – BostonMacOSX

+0

是的,我已经更新了我的代码,正如你在上面看到的和@BostonMacOSX这是在我身边工作,并希望这也会在你工作 – UltimateDevil

+1

你不需要初始化块内初始化视图。 kotlin syntectic对绑定视图进行延迟初始化。 –