私は次のYouTubeチュートリアルを通して学ぼうとしています。私はAndroid Studio 3.1 Canaryを使用していますが、チュートリアルの同じポイントに行き詰まります。たとえば、このYouTubeチュートリアルにアクセスした場合 https://youtu.be/3RMboPhUbmg?t = 21 3:30分のマーク。
彼らがMaterialSearchView searchViewを入力しているとき; 「メンバーの宣言が必要です」という赤い下線が表示され、何度検索しても答えが見つかりません。このエラーの解決策は何ですか?ありがとう
これは、Main2Activity.ktに含まれているコードです。結果は、ツールバーとmaterialsearchviewオブジェクトを呼び出すか、知っているはずです
import Android.support.v7.app.AppCompatActivity
import Android.os.Bundle
import Android.support.v7.widget.Toolbar
import com.miguelcatalan.materialsearchview.MaterialSearchView
import kotlinx.Android.synthetic.main.activity_main2.*
class Main2Activity : AppCompatActivity () {
**MaterialSearchView searchView;** "expecting member declaration error"
**Toolbar toolbar;** "expecting member declaration error"
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
toolbar=(Toolbar()) findViewbyId(R.id.toolbar);
setSupportActionBar(toolbar);
}
*private void searchViewCode()
{
searchView=(MaterialSearchView)findViewById(R.id.search_view);
}
}
私の場合、問題は.PDFからのコピーアンドペーストによる見えないcharでした
以下のスニペットでは、「{」と「onClick」の間に2つの文字があることに注意してください。
setOnClickListener { onClick(item) }
これが私の悪夢の原因です。
Kotlin構文ではなく、Java構文を使用してsearchView
およびtoolbar
変数を宣言しているようです。そのため、コンパイラーは宣言内容を理解できません。
したがって、宣言を次のように変更します。
var searchView: MaterialSearchView? = null
val toolbar: Toolbar = view.findViewById(R.id.toolbar) as Toolbar
または、Kotlin Android拡張機能を使用している場合は、(ビューIDを直接使用して)そのようにツールバーを取得できるはずです):