我正在尝试使用Jetpack 教程在片段和活动之间创建共享注入视图模型。
共享视图模型成功注入到父 MyActivity 中,但是当子渲染时,由于依赖注入失败,应用程序崩溃。我在下面提供了创建问题的代码。
提供会话管理器:
@InstallIn(ApplicationComponent::class)
@Module
class AppModule {
@Provides
@Singleton
fun provideSessionManager(
networkClient: NetworkClient
): SessionManager {
return SessionManager(networkClient)
}
}
Run Code Online (Sandbox Code Playgroud)
要注入共享视图模型:
class SharedViewModel @ViewModelInject constructor(
private var sessionManager: SessionManager
) : ViewModel() {
var name = MutableLiveData<String>("Shared View Model")
}
Run Code Online (Sandbox Code Playgroud)
并且由父活动和子片段使用。
class MyActionFragment() : Fragment() {
private val viewModel: SharedViewModel by viewModels()
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
Timber.d("View Model Name 1: ${viewModel.name.value}") // This line crashes
}
}
Run Code Online (Sandbox Code Playgroud)
class MyActivity : AuthenticatedBaseActivity() { …Run Code Online (Sandbox Code Playgroud) 还有可能开发出这样的糖吗?
我正在构建一个自定义视图,在其中重写 onDraw 方法。
有没有办法通过此视图填充值收缩画布(作为 onDraw 中的参数接收)?
并回答有关填充本身的任何可能的问题 - 就我而言,我不能使用边距。我需要使用填充物。
假设我有一个自定义注释:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Test {
boolean type();
}
Run Code Online (Sandbox Code Playgroud)
我希望type参数根据构建类型而不同(但这会自动更改)。
所以,我可以做一些喜欢的是:
@Test(type = BuildConfig.DEBUG)
public class Example {
}
Run Code Online (Sandbox Code Playgroud)
但是当然Example该类的代码不会编译,因为 的值BuildConfig.DEBUG不是常量。
任何人都知道为此创建解决方法吗?也许在gradle中指定一些其他参数?我对让我手动更改type特定构建的解决方案不感兴趣。这样或那样。我正在寻找一种通过构建自动执行此操作的方法。
我使用了以下双击代码
setOnTouchListener(this);
detector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTapEvent(MotionEvent ev) {
int x = (int)ev.getX();
int y = (int)ev.getY();
Toast.makeText(getContext(), "Double tapped", Toast.LENGTH_LONG).show();
}
});
Run Code Online (Sandbox Code Playgroud)
我跑的时候跑两次吐司
有任何想法吗?
在KitKat 4.4上运行
任何帮助赞赏
标记
假设有包含方法的界面:
Observable<Data> makeHttpCall(int param1, boolean param2);
Completable storeInDatabase(Data data);
Completable combinedCall(int param1, boolean param2);
Run Code Online (Sandbox Code Playgroud)
实现combineCall方法的最佳方法是:
似乎在RxJava 1.0中可以执行Completable.merge(Observable),但merge似乎不再接受Observable.
我正在尝试创建一行,其中包含一些带有标签的文本框,如下所示:
如何将标签与文本框对齐?
<label>Student ID</label>
<asp:TextBox ID="txtStudentID" runat="server"></asp:TextBox>
<label>Student Last Name</label>
<asp:TextBox ID="txtStuLastName" runat="server"></asp:TextBox>
<label>Student First Name</label>
<asp:TextBox ID="txtStuFirstName" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
这是我当前的 CSS。
.boxround label {
display: block;
float: left;
}
Run Code Online (Sandbox Code Playgroud)
这是我目前得到的:
谢谢你。
我想从以下视图层次结构中找到 ID 为“buttonActionNo”的按钮。
我尝试了以下代码,但它不起作用。给出“在层次结构中没有找到匹配的视图:”错误。
**ViewInteraction appCompatImageButton3 = onView(
allOf(withId(R.id.buttonActionNo),
allOf( withhParent(withId(R.id.actionButtonPanel)),
allOf( withParent(withId(R.id.outerContainer)),
allOf( withParent(withId(R.id.questioContainer)),
withParent(withId(R.id.redFlagQuestion1))))),
isDisplayed()));
appCompatImageButton3.perform(click());**
Run Code Online (Sandbox Code Playgroud)
有没有人试图抓住一个几乎没有嵌套父级的视图?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- redFlagQuestion1 -->
<FrameLayout android:id="@+id/questionOneContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include
android:id="@+id/redFlagQuestion1"
layout="@layout/row_base" />
</FrameLayout>
<!-- redFlagQuestion 2 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include
android:id="@+id/fillerLayout2"
layout="@layout/fill_space" />
<include
android:id="@+id/redFlagQuestion2"
layout="@layout/row_base" />
</FrameLayout>
<!-- redFlagQuestion 3 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include
android:id="@+id/fillerLayout3"
layout="@layout/fill_space" />
<include
android:id="@+id/redFlagQuestion3"
layout="@layout/row_base" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
row_base.xml 视图层次结构如下:
+----------->LinearLayout{id=2131492990, res-name=redFlagQuestion1,visibility=VISIBLE, width=1080, height=780, has-focus=false, has-focusable=true, has- window-focus=true, …