2017-01-23 18 views
1

私はアンドロイドが新しくなりました。私は材料設計グリッドビューを作成しました。今私がしたいことは、各グリッドビューをクリックすると、それぞれの新しいアクティビティが私に取られるはずです。 ALPHABETSをクリックするとListAlphabet.javaになります。ご協力ありがとうございます。グリッドビューでクリックすると新しいアクティビティを開きたい

enter image description here

私activity_main.xmlは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/android_coordinator_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:id="@+id/appbar_layout" 
     android:layout_height="@dimen/app_bar_height" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar_android_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleMarginStart="@dimen/expanded_toolbar_title_margin_start" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/image_view" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerInside" 
       android:src="@drawable/code" 
       app:layout_collapseMode="parallax" 
       app:layout_collapseParallaxMultiplier="0.7" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 

     </android.support.design.widget.CollapsingToolbarLayout> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:id="@+id/nestedscrollview" 
     android:layout_height="match_parent" 
     android:fillViewport="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <LinearLayout 
      android:id="@+id/linearLayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <GridView 
       android:id="@+id/grid" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:columnWidth="100dp" 
       android:gravity="center" 
       android:listSelector="#00000000" 
       android:numColumns="auto_fit" 
       android:stretchMode="columnWidth" /> 
     </LinearLayout> 
    </android.support.v4.widget.NestedScrollView> 

</android.support.design.widget.CoordinatorLayout> 

gridview_custom_layout.xmlは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/android_gridview_custom_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:padding="10dp"> 

    <com.andexert.library.RippleView 
     android:id="@+id/more" 
     rv_centered="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" 
     app:rv_color="#fff" 
     app:rv_rippleDuration="200"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/linearLayout" 
      android:orientation="vertical"> 

      <ImageView 
       android:id="@+id/gridview_image" 
       android:layout_width="80dp" 
       android:layout_height="80dp" 
       android:src="@mipmap/ic_launcher" /> 

      <TextView 
       android:id="@+id/gridview_text" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/grid_image" 
       android:layout_marginTop="10dp" 
       android:gravity="center" 
       android:text="Grid View Item" 
       android:textColor="#444" 
       android:textSize="12sp" 
       android:textStyle="bold" /> 
     </LinearLayout> 
    </com.andexert.library.RippleView> 
</LinearLayout> 

MainActivity.javaは次のとおりです。

package com.affinityapp.sj.alphabet; 

import android.content.Context; 
import android.os.Bundle; 
import android.support.design.widget.CollapsingToolbarLayout; 
import android.support.design.widget.CoordinatorLayout; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.widget.GridView; 

import java.util.ArrayList; 

public class MainActivity extends AppCompatActivity { 

    Toolbar toolbar; 
    CollapsingToolbarLayout collapsingToolbarLayoutAndroid; 
    CoordinatorLayout rootLayoutAndroid; 
    GridView gridView; 
    Context context; 
    ArrayList arrayList; 

    public static String[] gridViewStrings = { 
      "ALPHABETS", 
      "NUMBERS", 
      "MONTH", 
      "DAYS", 
      "ANIMALS", 
      "CALL US", 

    }; 
    public static int[] gridViewImages = { 
      R.drawable.icon_alphabet, 
      R.drawable.icon_number, 
      R.drawable.icon_calendar, 
      R.drawable.icon_days, 
      R.drawable.icon_animal, 
      R.drawable.icon_call 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     gridView = (GridView) findViewById(R.id.grid); 
     gridView.setAdapter(new CustomAndroidGridViewAdapter(this, gridViewStrings, gridViewImages)); 

     initInstances(); 
    } 

    private void initInstances() { 
     rootLayoutAndroid = (CoordinatorLayout) findViewById(R.id.android_coordinator_layout); 
     collapsingToolbarLayoutAndroid = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_android_layout); 
     collapsingToolbarLayoutAndroid.setTitle("e-Learning"); 
    } 

} 

CustomAndroidGridViewAdapter.javaは次のとおりです。

package com.affinityapp.sj.alphabet; 

/** 
* Created by SJ on 23-01-2017. 
*/ 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

/** 
* Created by HP on 5/11/2016. 
*/ 

public class CustomAndroidGridViewAdapter extends BaseAdapter { 
    private Context mContext; 
    private final String[] string; 
    private final int[] Imageid; 

    public CustomAndroidGridViewAdapter(Context c,String[] string,int[] Imageid) { 
     mContext = c; 
     this.Imageid = Imageid; 
     this.string = string; 
    } 

    @Override 
    public int getCount() { 
     return string.length; 
    } 

    @Override 
    public Object getItem(int p) { 
     return null; 
    } 

    @Override 
    public long getItemId(int p) { 
     return 0; 
    } 

    @Override 
    public View getView(int p, View convertView, ViewGroup parent) { 
     View grid; 
     LayoutInflater inflater = (LayoutInflater) mContext 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     if (convertView == null) { 

      grid = new View(mContext); 
      grid = inflater.inflate(R.layout.gridview_custom_layout, null); 
      TextView textView = (TextView) grid.findViewById(R.id.gridview_text); 
      ImageView imageView = (ImageView)grid.findViewById(R.id.gridview_image); 
      textView.setText(string[p]); 
      imageView.setImageResource(Imageid[p]); 
     } else { 
      grid = (View) convertView; 
     } 

     return grid; 
    } 
} 

答えて

1

このボタンをクリックしてリスナーを設定する必要があります。だから、

gridview.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 

      final Intent intent; 
      switch(position) 
      { 
       case 0: 
      intent = new Intent(context, FirstActivity.class); 
      break; 

     case 1: 
      intent = new Intent(context, SecondActivity.class); 
      break; 
      ... 
     default: 
      intent = new Intent(context, DefaultActivity.class); 
      break; 
    } 
    startActivity(intent); 


} 
    }); 
+0

ありがとう@Aslam Hossin、私は6グリッドビューの画像を持っており、それぞれの画像について私は別のアクティビティを持っています。 –

+0

私の編集した答えを見てください。 –

+0

こんにちは@Aslam Hossinは、私はこの 'gridView.setOnItemClickListener(新OnItemClickListener(){ @Override ます。public void onItemClick(AdapterView 親、ビューV、int型の位置、長いID){ 最終テントの意図のような変更を行った。 スイッチを(位置) {ケース0: 意図=新しいテント(文脈、ListAlphabets.class); ブレーク;} context.startActivity(意図); }}); 'それは –

1

おそらく重複質問... 研究徹底的に質問を投稿する前にしてください。

回答は、このスレッドで見つけることができます:How can I give an imageview click effect like a button on Android?

編集: あなたの現在のアクティビティでは、変数のImageButtonを作成する必要があります。

ImageButton myButton = (ImageButton) findViewById(R.id.the_button_you_created_on_the_layout.xml); 

次に、あなたがあなたの活動の方法onItemClickListener実装

myButton.setOnClickListener(new View.OnClickListner(){ 
// When the button is pressed/clicked, it will run the code below 
@Override 
public void onClick() 
    // Intent is what you use to start another activity 
    Intent myIntent = new Intent(this, YourActivity.class); 
    startActivity(intent); 
} 
}); 
+0

ありがとう@Stevey、実際には私はアンドロイドに新しいので、上記のコードで私を説明してください。 –

+0

が更新されました。お気軽に参考にしてください。 – Stevey

2

を、あなたはグリッドビューをクリックしてこの方法を使用することができます:

public class MainActivity extends AppCompatActivity { 

Toolbar toolbar; 
CollapsingToolbarLayout collapsingToolbarLayoutAndroid; 
CoordinatorLayout rootLayoutAndroid; 
GridView gridView; 
Context context; 
ArrayList arrayList; 

public static String[] gridViewStrings = { 
     "ALPHABETS", 
     "NUMBERS", 
     "MONTH", 
     "DAYS", 
     "ANIMALS", 
     "CALL US", 

}; 
public static int[] gridViewImages = { 
     R.drawable.icon_alphabet, 
     R.drawable.icon_number, 
     R.drawable.icon_calendar, 
     R.drawable.icon_days, 
     R.drawable.icon_animal, 
     R.drawable.icon_call 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    gridView = (GridView) findViewById(R.id.grid); 
    gridView.setAdapter(new CustomAndroidGridViewAdapter(this, gridViewStrings, gridViewImages)); 

    initInstances(); 

gridView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
// Do whatever you want, like start new Activity or display new view or display dialog box or display just message 
     Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show(); 
    } 
}); 
} 

private void initInstances() { 
    rootLayoutAndroid = (CoordinatorLayout) findViewById(R.id.android_coordinator_layout); 
    collapsingToolbarLayoutAndroid = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_android_layout); 
    collapsingToolbarLayoutAndroid.setTitle("e-Learning"); 
    } 

    } 

希望、これはあなたを助けるでしょう。

+0

ありがとう@Dharma Kshetri、私は6つのグリッドビューの画像のための6つの異なる活動があります.. –

関連する問題