Tag: 安卓

如何在不同的类中调用函数

我有一个可以玩机器人或朋友的游戏。 所以我做了一个新的课,让用户选择玩谁,在新课上我做了两个按钮,第一个是“BOT”,第二个是“朋友”。 所以对于这些按钮,我想调用一个不同的函数,我已经在我以前的课上这个类。 我怎样才能做到这一点? 代码的功能之一: fun playGame(cellId: Int, buSelected: Button) { if (activePlayer == 1) { txtView.text = "Player 2 turn" buSelected.text = "X" buSelected.setBackgroundColor(Color.GREEN) player1.add(cellId) activePlayer = 2 } else { txtView.text = "Player 1 turn" buSelected.text = "O" buSelected.setBackgroundColor(Color.BLUE) player2.add(cellId) activePlayer = 1 } 我想在新的类中调用playGame() 。

将应用程序传递给AndroidViewModel

我想为我的视图模型使用AndroidViewModel来访问Context 。 它要求Application作为参数传递。 我的ViewModel类看起来像这样: class FooAndroidViewModel(application: Application?) : AndroidViewModel(aplication) { … } 它得到像这样实例化: val fooModel = ViewModelProviders.of(this).get(FooAndroidViewModel::class.java) 问题是,这给出了一个错误, FooAndroidViewModel不能实例化 – 可能是因为缺少application参数。 问题:如何将application传递给ViewModelProviders.of(this).get(FooAndroidViewModel::class.java) ?

尝试访问继承字段时发生NullPointerException

在尝试访问父类中的重写变量时,我正在获取NPE java.lang.NullPointerException: Attempt to get length of null array at app.deadmc.materiallivewallpaper.model.Square.<init>(Square.kt:29) at app.deadmc.materiallivewallpaper.model.Cube.<init>(Cube.kt:8) at app.deadmc.materiallivewallpaper.renderer.MaterialRenderer.onSurfaceCreated(MaterialRenderer.kt:40) at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1548) at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1286) 我将展示简化的代码,以解决未知的问题 我有一个绘画广场的课 open class Square(renderer: ReadyRenderer) { val COORDS_PER_VERTEX = 3 open val triangleCoords = floatArrayOf( //first triangle -1.0f, 1.0f, 0.0f, -1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 0.0f, //second triangle -1.0f, -1.0f, 0.0f, 1.0f, -1.0f, 0.0f, 1.0f, […]

由于接收器类型不匹配,以下候选人都不负责任

在Android项目上工作一切正常,直到现在。 得到这个错误 由于接收器类型不匹配,以下候选人都不负责任 。 它发生在我的意见的编号。 以下是代码 override fun getView(postion: Int, p1: View?, p2: ViewGroup?): View { val myView = View.inflate(con, R.layout.item, null) val Tanamo = this.lis[postion] myView.txt1.text = Tanamo.Title myView.txt2.text = Tanamo.Author myView.but!!.setBackgroundResource(android.R.drawable.ic_media_play) myView.but.setOnClickListener({ if (playRadio) { playRadio = false medi!!.stop() myView.but!!.setBackgroundResource(android.R.drawable.ic_media_play) } else { playRadio = true medi = MediaPlayer() try { medi!!.setDataSource(Tanamo.Url) medi!!.prepare() […]

在Recycler视图上复制适配器

嗨新编程和我的问题是当我切换标签上我的导航。 我的数据重新加载时重复。 httpClient.get(url, object : JsonHttpResponseHandler() { override fun onSuccess(statusCode: Int, headers: Array<out Header>, response: JSONArray) { for (i in 0 until response.length()) { val seminar = Seminar.fromJson(response.getJSONObject(i)) seminarsAdapter.add(SeminarItem(seminar)) } } override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) { Log.d("Seminars Fragment", throwable?.localizedMessage) } })

根据滑动方向移动视图

我有一组imageView,我想根据滑动的方向来移动它们,但是这里的问题是,在第一次向下滑动之后,它们会停止向下移动,同样的事情也会发生。 这里是我的代码: imageView.setOnTouchListener(object : OnSwipeTouchListener(this) { override fun onSwipeTop() { dis = distance(imageView) imageView.animate().translationY(-dis) } override fun onSwipeLeft() { dis = distance(imageView) imageView.animate().translationX(-dis) } override fun onSwipeRight() { dis = distance(imageView) imageView.animate().translationX(dis) } override fun onSwipeBottom() { dis = distance(imageView) imageView.animate().translationY(dis) } }) 这里是执行distance()函数: fun distance(_view: ImageView): Float { when (resources.displayMetrics.density) { 0.75F -> return […]

修改内部类的全局变量的值

所以我有一堂课 class createLobby : AppCompatActivity() { var invited = ArrayList<String>() private class myCustomAdapter(context: Context, users:ArrayList<User>): BaseAdapter() { override fun getView(position: Int, convertView: View?, viewGroup: ViewGroup?): View { invited.add(mUsers.get(position).idUser) } } } 问题是,我不能修改邀请,它说未解决的参考 我试图改变invited.add(mUsers.get(position).idUser) : this.invited… createLobby.invited… ((createLobby) stuff here) 但它没有工作,任何想法或帮助? 谢谢!

只有安全(?)或非空断言(!!)的电话才可以在一个可为空的接收器上

我必须使用?. 和!!. 每次在onBindViewHolder和onCreateViewHolder ? 有什么办法可以避免这种情况? holder.textview.text和parent.context显示此错误。 代码: override fun onBindViewHolder(holder: ViewHolder?, position: Int) { holder.textview.text = items[position] } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int):ViewHolder { return ViewHolder(TextView(parent.context)) }

getContentResolver.openInputStream返回一个空的流

我正在从WhatsApp共享一个音频文件(opus文件)到我的应用程序。 当我试图读取文件使用 val uri: Uri = intent.getParcelableExtra(Intent.EXTRA_STREAM) val inputStream = contentResolver.openInputStream(uri) val byteArray = IOUtils.toByteArray(inputStream) 我得到一个空的ByteArray 我试过像这样使用BitmapFactory.decodeStream : val uri: Uri = intent.getParcelableExtra(Intent.EXTRA_STREAM) val inputStream = contentResolver.openInputStream(uri) val bitmap = BitmapFactory.decodeStream(inputStream) 但是BitmapFactory.decodeStream只返回null 。 我也试过查询这个uri的内容解析器,但是我得到的只是文件名和文件大小。 uri值是"content://com.whatsapp.provider.media/item/133401" 但是,当我试图从WhatsApp共享一个图像到我的应用程序,并使用上述相同的代码,一切正常,我得到所需的byteArray 。 我很想在这里得到一些帮助 谢谢!

折叠时CollapsingToolbarLayout显示中断的标题

标题有问题 嘿,你可以看到这张图片,我正在尝试使用CollpasingToolbarLayout,但标题没有被正确绘制。 在展开状态下,我将标题设置为淡出: val collapsingToolbarLayout = layout.findViewById<CollapsingToolbarLayout>(R.id.collapsing_toolbar) collapsingToolbarLayout.setExpandedTitleColor(android.R.color.transparent) 所以扩大的国家并不重要。 我的xml看起来像这样: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:fitsSystemWindows="true" app:expanded="false" > <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="48dp" app:expandedTitleMarginEnd="64dp" android:fitsSystemWindows="true"> <CalendarView android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="35dp"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" app:title="Title" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_collapseMode="pin"> </android.support.v7.widget.Toolbar> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:id="@+id/scroll" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <include […]