小编sko*_*kon的帖子

如何使用底部导航视图和Android导航组件将参数传递给片段?

是否可以使用底部导航视图和Navigation组件在片段中传递和访问参数?

我正在使用一个具有多个片段方法的活动,其中我的顶级片段需要一个参数(通常通过newInstance生成的方法完成)。我看过了Navigation组件开发人员指南和代码实验室,但只提到了使用safeargs以及在目标和操作中添加参数标签。

这是我的导航图:

<navigation xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" 
    app:startDestination="@id/homeFragment">

    <fragment android:id="@+id/homeFragment"
          android:name="uk.co.homeready.homeready.HomeFragment"
          android:label="fragment_home"
          tools:layout="@layout/fragment_home">
          <!--Do I create an argument block here?-->
    </fragment>

    <fragment android:id="@+id/calculatorFragment"
          android:name="uk.co.homeready.homeready.CalculatorFragment"
          android:label="fragment_calculator"
          tools:layout="@layout/fragment_calculator"/>

    <fragment android:id="@+id/resourcesFragment"
          android:name="uk.co.homeready.homeready.ResourcesFragment"
          android:label="fragment_resources"
          tools:layout="@layout/fragment_resources"/>

</navigation>
Run Code Online (Sandbox Code Playgroud)

底部导航视图菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/homeFragment"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/title_home"/>

    <item
        android:id="@+id/calculatorFragment"
        android:icon="@drawable/ic_baseline_attach_money_24px"
        android:title="@string/title_calculator"/>

    <item
        android:id="@+id/resourcesFragment"
        android:icon="@drawable/ic_baseline_library_books_24px"
        android:title="@string/title_resources"/>

</menu>
Run Code Online (Sandbox Code Playgroud)

主要活动:

override fun onCreate(savedInstanceState: Bundle?) {
        ...
        val navController = Navigation.findNavController(this, 
        R.id.nav_host_fragment)
        bottom_navigation.setupWithNavController(navController)
        ....
}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml

<android.support.constraint.ConstraintLayout>
    <fragment
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:layout_constraintBottom_toTopOf="@id/bottom_navigation"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_graph"/>

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_navigation"
        app:menu="@menu/bottom_navigation"/>

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

家庭碎片

override fun onCreateView(inflater: LayoutInflater, …
Run Code Online (Sandbox Code Playgroud)

android android-fragments bottomnavigationview android-jetpack android-architecture-navigation

9
推荐指数
2
解决办法
4541
查看次数

JList重复选择

我正在尝试使用Swing,并决定专注于将JList与Objects的arraylist结合使用.

我想创建一个显示空白JList的程序,当按下按钮时,它会显示arraylist的内容,并允许单个选择打印出所选的内容.

我当前的代码完成了上述所有操作,但是当我单击JList上的单个条目时,它会将其打印两次.我觉得这是一个简单的错误,很容易纠正,但我一直在阅读它,我的大脑已停止合作.

任何帮助将不胜感激.提前致谢 :)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.event.*;


public class textarea {

    ArrayList <Pet> petList = new ArrayList <Pet> ();
    DefaultListModel model = new DefaultListModel();
    JList list = new JList();

    public static void main (String [] args){

        textarea gui = new textarea();
        gui.go();
    }

    public void go(){

        petList.add(new Pet("Lucy","Dog",5));
        petList.add(new Pet("Geoff","Cat",2));
        petList.add(new Pet("Hammond","Hamster",1));

        model = new DefaultListModel();
        for(Pet p:petList){
            model.addElement(p.toString());
        }

        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        JButton button …
Run Code Online (Sandbox Code Playgroud)

java swing arraylist jlist

6
推荐指数
1
解决办法
1836
查看次数

使用单个查询搜索 Android Room 中的多个表

假设有 3 张表

@Entity
data class Pet(
  @PrimaryKey
  val id: String,
  val name: String,
  val colour: String,
  height: Int
  ownerId: String,
  householdId: String
)

@Entity
data class Owner(
  @PrimaryKey
  val id: String,
  val name: String,
  val address: String,
  val telephoneNumer: Int
)

@Entity
data class Household(
  @PrimaryKey
  val id: String,
  val name: String,
  val address: String,
  val region: String
)
Run Code Online (Sandbox Code Playgroud)

执行查询的最佳方式是什么,它返回 中的所有条目PetOwner并且Household其中name包含“Dav”

并获取与此类似的数据列表(为了简洁,减去一些字段)

Pet("Dave"...) // Pet
Owner("David"...) //Owner
Owner("Davina"...) //Owner
Household("Davenport Close"...) …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-room

6
推荐指数
1
解决办法
3515
查看次数

Espresso - onClick 在 Compose AndroidView 内的嵌套 ButtonView 上执行时不起作用

我正在使用 Espresso 来测试在 AndroidView 可组合项中具有嵌套 ButtonView 的 Compose 屏幕。但是调用Espresso.onView(ViewMatchers.withText("Click me")).perform(ViewActions.click())不起作用,并且运行测试时不会调用 onClick 回调,导致检查是否text已更新的断言失败。

我的撰写/测试依赖项是

implementation "androidx.compose.ui:ui:1.1.1"
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.1.1"
debugImplementation "androidx.compose.ui:ui-tooling:1.1.1"
debugImplementation "androidx.compose.ui:ui-test-manifest:1.1.1"
Run Code Online (Sandbox Code Playgroud)

我的混合 Compose 代码如下所示

// OnClick functionality works when  running app
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            SampleAppTheme {
                HybridSampleScreen()
            }
        }
    }
}

@Composable
fun HybridSampleScreen() {
    var text by rememberSaveable { mutableStateOf("Initial Text") }
    Surface(
        modifier = Modifier.fillMaxSize(),
        color = MaterialTheme.colors.background
    ) { …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-espresso android-jetpack-compose

6
推荐指数
0
解决办法
1228
查看次数