当前位置: 首页 > 知识库问答 >
问题:

Android更新网格视图在另一个活动中

艾意蕴
2023-03-14

我在Android编程领域相对来说是个新手,我遇到了一些麻烦。问题是我在MainActivity中定义了一个gridview,它由几个imageViews组成。这些ImageViews有一个onClicklistener,它用另一个gridView打开另一个活动。当在这个网格中选择一个元素(图像)时,我想更新我的MainActivity中的gridview来采用所选择的元素,但实际上我不知道如何实现这一点。

我找到了以下代码来更新gridView,如果我尝试在同一个Activity中更新我的Grid,则该代码有效:

adapter.notifyDataChanged();
grid.invalidateViews();
grid.setAdapter(adapter);

我第二个活动中的onClickListener:

mGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

ResolveInfo info = mApps.get(position);

//sets the new drawable
Helper.selectedAppImages[0]=getResources().getDrawable(R.drawable.ic_launcher);

//UPDATE THE GRIDVIEW IN MY MAINACTIVITY     

AppView.this.finish() ;
}
});

共有2个答案

裴曜灿
2023-03-14

第二项活动:

mGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

ResolveInfo info = mApps.get(position);

//sets the new drawable
Helper.selectedAppImages[0]=getResources().getDrawable(R.drawable.ic_launcher);

//UPDATE THE GRIDVIEW IN MY MAINACTIVITY     
Intent returnIntent = new Intent();
 returnIntent.putExtra("info",info);//<-- or set the image that you want to change
 AppView.this.setResult(RESULT_OK,returnIntent);     
AppView.this.finish() ;
}
});

第二个活动开始于:

startActivityForResult(intent,1);

在主活动中覆盖以下函数:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == 1) {

     if(resultCode == RESULT_OK){      
         String result=data.getStringExtra("info"); 
         adapter.notifyDataChanged();         

     }
     if (resultCode == RESULT_CANCELED) {    
         //Write your code if there's no result
     }
  }
}//onActivityResult
仇正豪
2023-03-14

在MainActivity中,使用< code > startActivityForResult 显示第二个Activity,传递您在第二个Activity中需要的数据,并在MainActivity中覆盖< code>onActivityResult。从第二个“活动”中选择图像时,使用< code>setResult(RESULT_OK,data)后跟< code>finish()。您将在main activity < code > on activity result 中获得结果代码和数据< code>Intent。

你可以看看这里的更多信息: http://developer.android.com/training/basics/intents/result.html

 类似资料:
  • 我有一个以3x4矩阵排列的GridView,GridView中的每一项都是一个包含ImageView和Textview的FrameLayout。最初,文本视图被设置为显示字母“X”。点击后,字母变成“Y”。 它适用于除第一项之外的所有GridView项。如果我点击第一个(左上角),那么无论我等待多长时间,都不会发生任何事情。如果我点击Android模拟器屏幕上的任何其他地方(甚至在GridView

  • 我有两个 列表 详细 列表显示项目列表,单击列表中的项目时显示详细信息。在中,我们观察从数据库获取提要的情况,一旦我们这样做了,我们就更新了用户界面。 列表页 现在我们有了一个页面,该页面更新了提要(项目),并且已经完成,但是更改没有反映在中。 详细信息页面 提要视图模型 为了简单起见,已经抽象了一些代码。如果需要,我可以添加它们来跟踪问题

  • 长话短说。 我有两个片段的主要活动。因此,这里不是主要活动,而是两个片段。在第一个片段中有一个开关。 当选中或取消选中开关时,是否可以从主活动更新背景?背景设置在content_main中。xml,因为在更改片段时没有转换。 那么这有可能吗? 我认为这会奏效: 在主要活动中: 还是因为片段本身没有加载新的内容而不可能?如果是这样。怎么可能? 提前谢谢各位 资料来源: 从另一个活动更改一个活动的背景

  • 在SO上也有类似的问题,但没有一个对我有效。 我想在Activity1中获取被点击的图像并在Activity2中显示它。 我获取被点击图像的图像id如下所示: 并通过意图传递给另一个活动。 任何帮助都很感激。

  • 我有一个非常令人沮丧的问题,我不知道是什么问题。我构建了只包含GridView的简单XML。这个gridview应该显示从特定的URL下载的图像(ImageView ),我用我的代码检索这些图像。 因此,此应用程序的想法只是从URL下载图像并在网格视图中显示这些图像。首先,我必须说我正在使用通用图像加载器库。首先,请看一下我的获取视图代码: 问题: 上面的代码有效,它在GridView中显示图像。