2017-03-09 93 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

相關問題