【问题标题】:how do i remove uri path information?如何删除uri路径信息?
【发布时间】:2019-09-20 10:17:10
【问题描述】:

我有这样的要求,如果有人选择了错误的文件,我需要删除选定的文件信息,但在调用 delete() 方法后,它也会从图库中删除, 我的问题是如何删除选定的文件 URI 信息我不想删除选定的文件表单库,有什么帮助吗?

【问题讨论】:

  • 嗨 gyas,有什么建议吗?

标签: java android file uri


【解决方案1】:

使用 Android 架构组件,例如:View Model、LiveData 等。我建议您关注 Android 的 Official Guide

在使用 Android 架构组件调用 API 请求时,我尝试实现的目标如下:

  • 创建一个 Repo 类,在该类中初始化 Retrofit 接口(如果使用 Retrofit)。创建一个调用所需 API、处理请求响应并返回实时数据的函数。为要通过 URL 传递的参数创建额外的函数。
  • 创建一个 View Model 类,在该类中初始化 Repo 类。创建一个调用 repo 类函数的函数,该函数返回 Live Data,此函数也返回 LiveData。为要传递给 Repo 的参数添加额外的函数,以便使用 URL 添加。
  • 在您的视图类(活动/片段)中,初始化视图模型类并传递所需的 URL 参数。调用 View Model 函数,该函数返回实时数据并在您的 View 类中观察。

当实时数据中出现任何更改时,您将在视图类中获取数据。

以上是一个简单的做法,但可以通过根据您的要求使响应通用化来改善它。

【讨论】:

  • 通用响应是什么意思?你能解释一下吗?
【解决方案2】:

您可以在 VM 中创建公共函数并将所需的参数传递给它,然后从 repo 调用所需的 URL。

参考示例 https://github.com/googlesamples/android-architecture-components/blob/master/BasicSample/app/src/main/java/com/example/android/persistence/viewmodel/ProductListViewModel.java

【讨论】:

  • 任何示例,因为当我尝试时,我能够同时获得值或 api 调用,但不能同时获得两者。
【解决方案3】:

你可以从视图模型中调用一些公共方法,然后将参数传递给它。就像这样

视图模型

class UserViewmodel: ViewModel() {

    fun callApi(userId: String) : Any {
      // Your method definition



        return result
    }
}

并通过视图模型实例在活动/片段调用方法中

class UserActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_user)

        val viewModel = ViewModelProviders.of(this).get(UserViewmodel::class.java)
        val result = viewModel.callApi("userId")
    }
}

【讨论】:

  • 我希望该值在同一个用户视图模型中,并在某个 URL 中传递此用户 ID 参数,即 get 方法。
  • 是的!你已经在UserViewmodelcallApi(userId: String)方法中获得了用户ID参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多