2017-03-09 12 views
0

GridViewとリストビューの間のインテントを考案しました。グリッドビューの項目をクリックすると、listviewに関連する次のインテントが開きます。次に、リストビューの項目をクリックすると、新しいインテントが開き、listviewの各項目に関連するテキストが表示されます。GridViewの後にListviewでクリックされた各項目の位置を取得

arraylistのオブジェクトがあり、オブジェクトもarraylistにあります。 arraylistの各オブジェクトをリストするためにGridviewが表示されます。 オブジェクト内のarraylistの各項目をリスト表示するリストビューが表示されます。

私は最初のガードビューと最初のリストビューを取得しました。

グリッドビューとリストビューのそれぞれのポジションを取得する方法に問題があります。

ここでは、最後の目的のコードを示します。私はロンドンをクリックすると

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()); 

目指しマイ、ロンドンの魅力的な場所が表示されます。パリをクリックすると、パリの魅力的な場所がリストアップされます。任意の都市の任意の魅力的な場所がクリックされると、詳細情報が最終意思として表示されます。

グリッドビューとリストビューの位置を最終的なインテントにする方法を教えてください。意図Note--

答えて

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。私はすでにそれらを定義しました。どのように私はグリッドビューの項目(位置2)とリストビュー(位置1) - >この情報のように到達するのですか? 。問題は数字を使わずにそこにあります。 – DRF

+0

あなたは、次のアクティビティでそのポジション番号を望むリストのポジション1をクリックしたとします。ではない? –

+0

修正。しかし、以前のインテントを定義しているため、クラス内でsetonItemClickListenerが定義されているかどうかわかりません。どのように私はそれを受け入れることができます。 – DRF

関連する問題