2017-03-09 101 views
0

我设计了GridView和列表视图之间的意图。当我点击gridview的项目时,打开与listview相关的下一个intent。然后,当我单击列表视图的项目时,打开新的意图以显示与每个listview项目相关的文本。获取GridView后点击列表视图中每个项目的位置

ArrayList中有一个对象,该对象也在arraylist中。显示Gridview显示列出数组列表的每个对象。显示Listview以列出对象中的ArrayList的每个项目。

我得到了项目第一个girdview和第一个listview。

我有一个问题如何获得gridview和列表视图的每个位置。

这是最后一个意图在下面的代码。

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 

      switch (position){ 

       case 0: 
        Toast.makeText(getApplicationContext(),"London",Toast.LENGTH_SHORT).show(); 
        Intent intent = new Intent(MainActivity.this,AttactivePlacesActivity.class); 
        intent.putExtra("position_griditem_one",position); 
        startActivity(intent); 
        break; 

       case 1: 
        Toast.makeText(getApplicationContext(),"Paris",Toast.LENGTH_SHORT).show(); 
        startActivity(new Intent(MainActivity.this,AttactivePlacesActivity.class) 
          .putExtra("position_griditem_two",position)); 
        break; 

     } 
    }); 

AttactivePlacesActivity

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 

       switch(position){ 

        case 0: 
         Toast.makeText(getApplicationContext(),"London Object",Toast.LENGTH_SHORT).show(); 
         Intent intent = new Intent(AttactivePlacesActivity.this,AttactivePlaceObject.class); 
         intent.putExtra("position_listitem_one",position); 
         startActivity(intent); 
         break; 

        case 1: 
         startActivity(new Intent(AttactivePlacesActivity.this,AttactivePlaceObject.class) 
           .putExtra("position_listitem_two",position)); 
         break; 


       } 


      } 
     }); 

AttactivePlaceObject

// get from a previous gridview to get each item of gridview 
     GridView gridView = (GridView) findViewById(R.id.gridlist); 

     // get from a previous listview to get each item of listview 
     ListView listView = (ListView) findViewById(R.id.listviewAttactivePlaces); 


     //gridView.getItemIdAtPosition(); 

     //listView.getItemIdAtPosition(); 


     ImageView attractivePlaceImage = (ImageView) findViewById(R.id.attractive_place_image); 

     TextView attractivePlaceInformation = (TextView) findViewById(R.id.attractive_place_detailed_information); 


     ImageView location = (ImageView) findViewById(R.id.location_icon); 


     attractivePlaceImage.setImageResource(
       cityAttactivePlaces.get(0).getAttactivePlaces().get(0).getmAttaticePlaceImageResourceId()); 


     attractivePlaceInformation.setText(cityAttactivePlaces.get(0).getAttactivePlaces().get(0).getPlaceDetailInformation()); 

我的目标 当我点击伦敦,伦敦的吸引人的地方上市。当我点击巴黎时,列出了巴黎吸引人的地方。点击任何城市的任何有吸引力的地方,详细信息显示为Last intent。

如何获得gridview和listviews的位置来显示最后的意图。

回答

1
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 
         Toast.makeText(getApplicationContext(),position+"",Toast.LENGTH_SHORT).show(); 

Intent intent = new Intent(AttactivePlacesActivity.this,AttactivePlaceObject.class); 
         intent.putExtra("position",position); 
         startActivity(intent); 

       } 
      }); 

注 - 意图应由活动发送,并且必须由活动接收。

+0

以前意图中的listivew和gridview setonItemClickListener。我已经定义了它们。我如何达到gridview项目(位置2)和列表视图(位置1) - >像这样information.setText(c.get(2).getText()。get(1).getInformation()); 。问题在于没有使用数字。 – DRF

+0

你的意思是说,如果你点击你想在下一个活动中的位置号码列表上的位置一。不是吗? –

+0

正确。但我不知道setonItemClickListener是否定义在类中,因为定义了以前的意图。我怎么能想到它。 – DRF

相关问题