【问题标题】:Android: How to change a drawable in a item list from other ActivityAndroid:如何从其他活动更改项目列表中的可绘制对象
【发布时间】:2013-03-13 12:49:59
【问题描述】:

我从 Android 开始,我可以创建一个 ListView,它运行良好。此列表包含表示任务状态(活动或非活动)的图像,当单击列表项会打开一个新活动,您可以在其中修改任务,更改其数据或状态。 我想确保,当用户返回任务列表时,正在工作的任务的项目将被更新(更改代表其状态的图像)。

如何在适用于所选任务的活动中执行此操作?

这是我在ListView 中为选定项目打开新活动的代码:

listTareas.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        String tarea_id = ((TextView) view.findViewById(R.id.tarea_id)).getText().toString();

        // Starting new intent
        Intent in = new Intent(getApplicationContext(), SingleItemActivity.class);
        in.putExtra(TAG_TAREA_ID, tarea_id);
        startActivity(in);
    }
});

我可以发送我想要更改的drawable id,但是我如何在SingleItemActivity 上处理它?这可能吗?

谢谢你们。

您好。 -

【问题讨论】:

    标签: android listview android-activity drawable


    【解决方案1】:

    您不能更改与 ID 关联的可绘制对象。

    您应该调用startActivityForResult 而不是startActivity,然后当您从SingleItemActivity 返回时,将调用方法onActivityResult。使用它来更新 ListView 从中填充的数据集。

    更新数据后,您应该在ListView 的适配器上调用notifyDataSetChanged()

    【讨论】:

    • 好的,谢谢。只是有一个疑问,当用户按下手机中的“返回”键时,onActivityResult 有效?
    • 您需要在第二个活动中覆盖 onBackPressed 方法以完成结果
    【解决方案2】:

    我认为你应该使用 startActivityForResult() 而不是 startActivity() 并且你需要重写方法

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
            super.onActivityResult(requestCode, resultCode, intent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      相关资源
      最近更新 更多