2016-06-14 109 views
0

让我们说我有两个活动。我们称他们为activity1和activity2。GridView onclick按下第二个活动按钮时不工作

现在activity1具有网格视图,并且每个单元格都使用适配器填充了自定义布局。该布局具有imageView和文本。现在通过适配器的getView方法通过setTag为每个布局分配一个ID。

现在activity2包含基于它从activity1获得的ID的数据。 activity2通过getIntent().getExtra().getString("ID")获得ID,然后将该ID发送到数据库以相应地检索数据。好的,现在我们知道应用中发生了什么。

的问题

当我点击活动1上​​的项目的GridView它成功地打开了活性2和数据显示在活性2,但(这里来的问题),当我按后退按钮活性1打开所有gridView中的单元格停止工作onclick,并且只有一个单元格工作,这是首先单击的单元格。所以它可以是任何单元格,但是一旦你按下了它,就进入activity2并返回其他所有单元格,除了首先固定的单元格之外不会执行任何操作。 我不明白为什么会发生这种情况。

守则

public void listenToItemClick(GridView gridview) 
    { 
     gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       Intent intent = new Intent(mainPanel.this , itemTypeList.class); 
       Toast.makeText(mainPanel.this, "" + position + "ID:" + v.getTag(), 
         Toast.LENGTH_SHORT).show(); 
       intent.putExtra("itemId", v.getTag() + ""); 
       //View target = 
       TextView counter = (TextView) findViewById(R.id.action_user); 
       ; 
       //int cartCounter = Integer.parseInt(counter.getText() + ""); 
       intent.putExtra("cartCounter", counter.getText() + ""); 
       startActivity(intent); 
      } 
     }); 
    } 

我打电话活性1中的onCreate此功能。

+0

我能看到的代码时,只调用一次后退按钮? –

+0

@ DennisvanOpstal没有后退按钮的代码。它的一般的Android后退按钮。我没有覆盖任何按钮。 –

+0

你如何从活动2回到活动1你是按下左上角的箭头(如果有的话)还是你在按手机的后退按钮? – Katharina

回答

2

尝试在onResume()方法,而不是onCreate()

因为onCreate()调用listenToItemClick()正在创建活动和onResume()被多次调用,你可以看到here

+0

放置功能之前super.onResume()并在此之后。没有工作。 –

+0

@UzumakiNaruto您是否重写了像这样的onResume()方法: '@Override protected void onResume() { super.onResume(); }' –

+0

是,并且在super.onResume()的上方和下方调用函数listenToItemClicks。但它没有工作。在恢复网格后,只响应第一个单元格。不知道什么是错的 –

相关问题