2017-08-31 12 views
0

GridViewアイテムのクリックで置換または呼び出ししようとしましたが、フラグメントを呼び出すときにGridViewも表示され、フラグメントも表示されます。私はGridViewを隠し、私の断片を示す必要があります。 これを手伝ってください。 onItemClickGridView私の断片を開きたい。私はそれのために以下のコードを使用しました。フラグメントがグリッドビューのアイテムに置き換えられませんでした。クリックしてくださいandroid

はここ

package com.softians.car; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.design.widget.NavigationView; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.GridView; 

public class MainActivity extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener 
{ 

//================================================================================================================ 

    GridView grid; 
    String[] web = { 
      "MLA", 
      "Important Work", 
      "Feedback", 
      "Contact", 
      "Events", 
      "Work Done", 
      "Party Info", 
      "Images", 
      "Video", 
      "Shere", 
      "City Info", 
      "Gov.Links", 
      "news", 
      "Educational", 
      "pay Bill", 
      "Election", 
      "Job", 
      "Mobile Bill" 


    } ; 
    int[] imageId = { 
      R.drawable.mla, 
      R.drawable.imp, 
      R.drawable.feedback, 

      R.drawable.contact, 
      R.drawable.event, 
      R.drawable.workdone, 

      R.drawable.leader, 
      R.drawable.images, 
      R.drawable.video_player, 

      R.drawable.share, 
      R.drawable.cityscape, 
      R.drawable.link, 

      R.drawable.news, 
      R.drawable.education, 
      R.drawable.billpay, 

      R.drawable.vote, 
      R.drawable.job, 
      R.drawable.transfer 

    }; 

//======================================================================================================== 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 


//==========================================Grid View========================================================================== 


     CustomGrid adapter = new CustomGrid(MainActivity.this, web, imageId); 
     grid=(GridView)findViewById(R.id.grid); 
     grid.setAdapter(adapter); 
     grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
      { 
//    if (position==1) 
//    { 
//     Intent i = new Intent(MainActivity.this, Important_Activity.class); 
//     startActivity(i); 
//     // Toast.makeText(MainActivity.this, "You Clicked at " + web[+position], Toast.LENGTH_SHORT).show(); 
//    } 
//    else 
//    { 
//     Toast.makeText(MainActivity.this, "Working...", Toast.LENGTH_SHORT).show(); 
//    } 


       switch (position) 
       { 
        case 0: Information aa = new Information(); 
          FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 

          fragmentTransaction.replace(R.id.frame,aa); 
          fragmentTransaction.commit(); 



//     case 0: Intent mla = new Intent(MainActivity.this, Information.class); 
//       startActivity(mla); 
//       break; 
// 
//     case 1: Intent imp = new Intent(MainActivity.this, Important_Activity.class); 
//       startActivity(imp); 
//       break; 
// 
//     case 3: Intent con = new Intent(MainActivity.this, Important_Activity.class); 
//       startActivity(con); 
//        break; 
// 
       } 

      } 
     }); 
+0

activity_mainのXMLレイアウトを共有できますか? –

+0

フラグメントの背景を白に設定する –

答えて

0
try this   

switch (position) { 
      case 0: Information aa = new Information(); 
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
     fragmentTransaction.replace(R.id.frame,aa); 
     fragmentTransaction.commit(); 
     grid.setVisibility(View.GONE); 
         } 
1

あなたの問題は、あなたのフラグメントのbackgroundにある私のコードです。フラグメントの背景を定義していない可能性が高いので、透明になり、両方のビューが表示されます(GridViewとフラグメント)。あなたのフラグメントのXMLのルートレイアウトに

例えば、定義:その後

android:background="@color/white" 

を、あなたは、フラグメント(GridViewコントロール)以下Viewからクリックイベントはまた、彼らがしている場合でも、呼ばれていることを理解するであろう表示されないので、同じレイアウトで、フラグメント全体の背景を定義した場合は、次も追加してください:

android:clickable="true"