Tag: android

7 android有什么问题?

我有服务接收udp datagramm套接字 private void startServer(final UdpServerListener listener) { mStarted = true; mWakeLock.acquire(10 * 60 * 1000L /*10 minutes*/); Looper myLooper = Looper.myLooper(); new HandlerThread(“TcpServerThread”) { @Override protected void onLooperPrepared() { new Handler(getLooper()).post(() -> { try { byte[] data = new byte[8 * 1024]; InetAddress address = BnjUtils.getLocalIpAddress(); DatagramPacket datagramPacket = new DatagramPacket(data, data.length); mServerSocket = […]

更改片段列表正在改变其他片段

我有一个TabLayout / ViewPager与我的活动中的两个片段。 标签被创建,然后我请求一些信息。 当我得到这个信息,我更新每个选项卡的RecyclerView。 主要活动 private fun setViews() { val adapter = TabsAdapter(supportFragmentManager) adapter.addFragment(NewsFragment(), getString(R.string.dossier_activity_news)) adapter.addFragment(PhotosFragment(), resources.getString(R.string.dossier_activity_photos)) view_pager.adapter = adapter tab_layout.setupWithViewPager(view_pager) // request info } fun setPages(pages: List) { // got info ((view_pager.adapter as TabsAdapter).getItem(0) as NewsFragment).setPages(pages) ((view_pager.adapter as TabsAdapter).getItem(1) as PhotosFragment).setPages(pages) } 问题是:在第二个选项卡( PhotosFragment )中,我想删除所有不包含照片/缩略图的页面。 NewsFragment fun setPages(pages: List) { if (pages.isNotEmpty()) recycler_view.adapter […]

Android Studio“没有发现测试”

有没有人能够得到测试运行在Android Studio(从GUI而不是终端),我一直无法从GUI运行测试。 每次尝试通过GUI运行测试时,我都会收到以下消息: 我能够使用以下命令从终端运行测试: ./gradlew connectedAndroidTest 我在Mac OSX上运行Android Studio 0.5.2,使用Gradle 1.11和Plugin 0.9.0 我的项目结构如下; MyProject/ src/ androidTest/ java/ com.myproject.app.test/ … (tests source code) … main/ java/ com.myproject.app/ … (source code) … res/ … (resources code) … build.gradle 我的build.gradle文件看起来类似于以下内容: … android { compileSdkVersion 19 buildToolsVersion “19.0.1” defaultConfig { versionCode 12 versionName “2.0” minSdkVersion 9 targetSdkVersion 19 testPackageName […]

TextView Null膨胀父布局后

TextView Null膨胀父布局后。 我正在运行一个循环,这膨胀了一些这些布局: for(i in ticketAr?.indices!!){ var inf1:LayoutInflater = LayoutInflater.from(context) var infv:View = inf1.inflate(R.layout.ticket_individual,null,false) infv.setId(parseInt(ticketAr[i].string(“ntb_id”))) var thetitle = infv.tck_event_title thetitle.setText(ticketAr[i].string(“age_group_desc”)) } 堆栈跟踪 10-25 09:30:35.839 11549-11549/com.example.xx.listview E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.xx.listview, PID: 11549 java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)’ on a null object reference at com.example.xx.listview.Ordering_Setup$getData$1.invoke(Ordering_Setup.kt:145) at com.example.xx.listview.Ordering_Setup$getData$1.invoke(Ordering_Setup.kt:29) at com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke(Deserializable.kt:37) at com.github.kittinunf.fuel.core.DeserializableKt$response$1.invoke(Deserializable.kt) at […]

Kotlin通用属性问题

在将我的Android项目从Java转换为Kotlin时,我遇到了Kotlin的一些问题。 假设我有接口I和扩展接口I的接口O. interface I{ } interface O: I{ } 通用类A具有扩展接口I的通用参数V,扩展类A的通用类B: abstract class A { } class B : A() { } 当我试图创建这样的属性: val returnB: A get() = b 我得到编译器错误“需要A,findB”。 在Java中,这将工作没有任何问题。 我怎样才能使用Kotlin访问? 我需要在我的应用程序中使用这种方法的基本类。 具有Navigator类的generics参数的BaseViewModel: abstract class BaseViewModel(application: Application, val repositoryProvider: RepositoryProvider) : AndroidViewModel(application) { var navigator: N? = null fun onDestroyView() { navigator = null } […]

如何使用Android Room Persistence Library将Column注释为NOT NULL

我的数据类看起来像这样 @Entity(tableName = “items”) data class Item( @ColumnInfo(name = “name”) var name: String = “”, @ColumnInfo(name = “room”) var room: String = “”, @ColumnInfo(name = “quantity”) var quantity: String = “”, @ColumnInfo(name = “description”) var description: String = “”, @PrimaryKey(autoGenerate = true) @ColumnInfo(name = “id”) var id: Long = 0 ) 房间使用SQLite,而SQLite在其数据库中支持NOT NULL列。 我尝试使用@NonNull注释列,但它没有效果。 有没有办法使房间数据库中的列不可空?

如何在回收视图中为自定义ViewHolder实现OnClickListener?

我正在创建一个应用程序,应该显示在recyclerview中的蓝牙设备,我希望用户能够单击项目执行操作。 现在我只是试图让吐司出现在点击后,但我想可能会显示一个对话框给对选择等,但我明显缺少的东西在我onclicklistener的用法。 我试图让我的ViewHolder类: DeviceHolder实现View.OnClickListener ,并将调用Toast.makeText()内我的onClick覆盖。 然而,没有任何事情发生。 我相信我只是错过了一些小事,并会感谢帮助find问题。 另外,我正在做的这kotlin,我是新来的,如果有可能更有效,kotlintypes的方式做到这一点,也将有所帮助。 我在下面张贴我的代码。 提前致谢。 class DeviceAdapter(val mContext : Context) : RecyclerView.Adapter(){ val mDevices = ArrayList() interface OnClickListener{ fun onClick(v: View) } fun updateItems(list: ArrayList){ mDevices.clear() mDevices.addAll(list) Log.d(TAG, “updating items : $mDevices”) notifyDataSetChanged() } fun ViewGroup.inflate(@LayoutRes res: Int, attachToRoot: Boolean = false): View{ return LayoutInflater.from(mContext).inflate(res, this, attachToRoot) } override fun […]

LinearLayout为什么不按比例分配收缩?

我的理解是,LinearLayout应该根据子元素的布局权重分配松弛(额外空间)和/或缩小(负额外空间)。 这似乎工作,因为我期望松懈,但不是收缩。 以下的android Activity演示。 它显示了9列(垂直LinearLayouts),拥挤程度不同。 9列中的每一列都有两个孩子: 第一个孩子是由3个单选按钮组成的子列,分别标有“A”,“B”,“C” 第二个孩子是由2个单选按钮组成的子列,分别标记为“0”,“1” 每个子列的权重与其中单选按钮的数量(3或2)成正比,子列中每个单选按钮的权重为1。 我选择了这些权重,以便在其子孙(单选按钮)中平均分配列的额外空间(负值或正值),以便给定列中的所有5个单选按钮的大小相同。 如下图所示(开发人员选项“显示布局边界”启用),它似乎按照预期的方式工作(右侧的红色列),但不适用于缩小(蓝色列,左侧)。 在最拥挤的(最左边的)列中,这个差异是最明显的,前三个单选按钮比两个表兄弟小得多。 这是LinearLayout的预期行为? 或者它是LinearLayout中的一个错误? 或者在我的程序中的错误? 这里的程序列表(在Kotlin ): // app/src/main/java/com/example/donhatch/linearlayoutweightsquestionactivity/MainActivity.kt // Simple activity to test LinearLayout’s slack/shrinkage distribution behavior. package com.example.donhatch.linearlayoutweightsquestionactivity import android.graphics.Color import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.LinearLayout import android.widget.RadioButton import android.widget.RadioGroup class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val c […]

如何使用Fragment的数据绑定

我试图从官方的谷歌文档https://developer.android.com/tools/data-binding/guide.html数据绑定的例子 除了我试图将数据绑定应用于片段而不是活动。 我正在编译的错误 Error:(37, 27) No resource type specified (at ‘text’ with value ‘@{marsdata.martianSols}. onCreate的片段如下所示: @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); MartianDataBinding binding = MartianDataBinding.inflate(getActivity().getLayoutInflater()); binding.setMarsdata(this); } onCreateView的片段看起来像这样: @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.martian_data, container, false); } 部分我的布局文件的片段如下所示: … 我的怀疑是, MartianDataBinding不知道它应该绑定哪个布局文件 – 因此错误。 有什么建议么?

针对构造函数中注入次数的Lint规则

我试图在我的Android代码中创建一个Lint规则,检查构造函数中是否注入数字,所以如果我为视图模型超过了某个数字,例如,我将引发一个lint警告。 我知道我必须在我的Lint探测器中实施一个UastScanner,但是我迷路了,因为我找不到好的文档。 还有别人做过这样的事吗? 或者我可以在哪里find好的文档? 谢谢!