supportActionBar使用Kotlin Android始终为null

时间:2017-05-24 06:59:45

标签: android kotlin kotlin-android-extensions

刚才谷歌将Kotlin作为官方编程语言,所以开始将我的文件转换为Kotlin。

在转换我的代码时,当我尝试使用supportActionBar

时,我总是得到空指针异常
    // set up action bar
    setSupportActionBar(mToolbar)
    supportActionBar!!.setDisplayShowTitleEnabled(false)

    // set the hamburger menu
    supportActionBar!!.setDisplayHomeAsUpEnabled(true)
    supportActionBar!!.setHomeButtonEnabled(true)

我的AndroidManifest条目是

      <activity android:name=".activities.MainActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar />

没有操作栏将windowActionBar设为false。 每次我运行应用程序时,我都会获得访问supportActionBar的空指针异常。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

您是否使用其视图ID初始化了mToolbar?如果没有,那就这样做并检查。

var mToolbar = findViewById(R.id.toolbar) as Toolbar?
setSupportActionBar(mToolbar)

答案 1 :(得分:2)

您可以尝试

val rst:Try[ResultSet]=executeQuery(query)

rst.isSuccess match {
  case true =>
    val rs:ResultSet=rst.get
    val rsList:mutable.Buffer[Row] = rs.all.asScala
    rsList.map { row =>
        val uuid=row.getString("uuid")
        val hc=row.getInt("hashcode")
        val indices:List[Int]=row.getList("indices",Int.getClass).asScala.toList
        val values:List[Double] = row.getList("values",Double.getClass).asScala.toList
        val label= row.getDouble ("label")
        val lp=new LabeledPoint(label, org.apache.spark.mllib.linalg.Vectors.sparse(colCount, indices.toArray, values.toArray))
        (lp,lp.hashCode(),uuid)
    }
}