🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

803閲覧

Android java gridImageAdapter

sasasakkkk

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/10/26 00:53

編集2019/10/26 03:00

ただいま、InstagramCloneを作成しております。
https://www.youtube.com/watch?v=LiOC0nuL0gg&list=PLgCYzUzKIBE9XqkckEJJA0I1wVKbUAOdv&index=16

Youtubeを見ながら作成しています。
gridImageAdapter作成時に以下のエラーが発生しました。
ご教授よろしくお願いいたします。

Process: com.example.instgramclone, PID: 24943
java.lang.IllegalArgumentException: view must not be null
at com.nostra13.universalimageloader.core.imageaware.ViewAware.<init>(ViewAware.java:70)
at com.nostra13.universalimageloader.core.imageaware.ViewAware.<init>(ViewAware.java:50)
at com.nostra13.universalimageloader.core.imageaware.ImageViewAware.<init>(ImageViewAware.java:44)
at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:365)
at com.example.instgramclone.Utils.GridImageAdapter.getView(GridImageAdapter.java:62)
at android.widget.AbsListView.obtainView(AbsListView.java:2405)
at android.widget.GridView.onMeasure(GridView.java:1085)
at android.view.View.measure(View.java:24530)

ProfileActivity

java

1public class ProfileActivity extends AppCompatActivity { 2 private static final String TAG = "ProfileActivity"; 3 private static final int ACTIVITY_NUM = 4; 4 5 private Context mContext = ProfileActivity.this; 6 7 private ProgressBar mProgressBar; 8 private ImageView profilePhoto; 9 10 11 12 @Override 13 protected void onCreate(@Nullable Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_profile); 16 Log.d(TAG,"onCreate: started."); 17 18 mProgressBar = findViewById(R.id.profileProgressBar); 19 mProgressBar.setVisibility(View.GONE); 20 21 22 setupBottomNavigationView(); 23 setupToolbar(); 24 setupActivityWidgets(); 25 setProfileImage(); 26 27 tempGridSetup(); 28 } 29 30 private void tempGridSetup(){ 31 ArrayList<String> imgURLs = new ArrayList<>(); 32 imgURLs.add("https://news.mynavi.jp/article/20180417-617921/index_images/index.jpg"); 33 imgURLs.add("https://rr.img.naver.jp/mig?src=http%3A%2F%2Fimgcc.naver.jp%2Fkaze%2Fmission%2FUSER%2F20170120%2F54%2F5652024%2F25%2F721x721x3d94427ccbd535e0e48f2bc1.jpg&twidth=1200&theight=1200&qlt=80&res_format=jpg&op=r"); 34 imgURLs.add("https://pbs.twimg.com/media/DQVO_CYVAAA02ZA.jpg"); 35 imgURLs.add("https://img.cinematoday.jp/a/E0014733/_size_c200x200/_v_1550029749/main.jpg"); 36 imgURLs.add("https://stat.ameba.jp/user_images/20190902/13/ibgsugi/4c/d4/p/o0880058014569278596.png?caw=800"); 37 imgURLs.add("https://www.sankei.com/images/news/181128/prl1811280044-p1.jpg"); 38 imgURLs.add("https://eiga.k-img.com/images/movie/90864/photo/de2bab49be6913e7/640.jpg"); 39 imgURLs.add("https://kamizublog.com/wp-content/uploads/2019/08/%E7%94%9F%E7%90%86%E3%81%A1%E3%82%83%E3%82%93%E5%A3%B0.jpg"); 40 imgURLs.add("http://livedoor.blogimg.jp/lilicocoyuka/imgs/2/7/277ebde2.jpg"); 41 imgURLs.add("https://contents.newspicks.com/images/news/3158452?updatedAt=20180708233123"); 42 imgURLs.add("https://sukini164.com/wp-content/uploads/2018/06/douteikun.png"); 43 44 setupImageGrid(imgURLs); 45 } 46 47 private void setupImageGrid(ArrayList<String> imgURLs){ 48 GridView gridView = findViewById(R.id.gridView); 49 50 GridImageAdapter adapter = new GridImageAdapter(mContext,R.layout.layout_grid_imageview,"",imgURLs); 51 gridView.setAdapter(adapter); 52 53 } 54 55 private void setProfileImage(){ 56 Log.d(TAG, "setProfileImage: setting profile photo"); 57 String imgURL = "pbs.twimg.com/profile_images/1124847009632899072/L6TtEBAK_400x400.jpg"; 58 UniversalImageLoader.setDefaultImage(imgURL,profilePhoto,mProgressBar,"https://"); 59 } 60 private void setupActivityWidgets(){ 61 mProgressBar = findViewById(R.id.profileProgressBar); 62 mProgressBar.setVisibility(View.GONE); 63 profilePhoto=findViewById(R.id.profile_photo); 64 } 65 66 private void setupToolbar() { 67 Toolbar toolbar = findViewById(R.id.profileToolBar); 68 setSupportActionBar(toolbar); 69 70 ImageView profileMenu = findViewById(R.id.profileMenu); 71 profileMenu.setOnClickListener(new View.OnClickListener() { 72 @Override 73 public void onClick(View v) { 74 Log.d(TAG,"OnClick: navigating to account settings"); 75 Intent intent = new Intent(mContext,AccountSettingsActivity.class); 76 startActivity(intent); 77 } 78 }); 79 } 80 //BottomNavigationView setup 81 private void setupBottomNavigationView(){ 82 Log.d(TAG, "setupBottomNavigationView: setting up BottomNavigationView"); 83 BottomNavigationViewEx bottomNavigationViewEx = findViewById(R.id.bottomNavViewBar); 84 BottomNavigationViewHelper.setupBottomNavigationView(bottomNavigationViewEx); 85 BottomNavigationViewHelper.enableNavigation(mContext,bottomNavigationViewEx); 86 Menu menu =bottomNavigationViewEx.getMenu(); 87 MenuItem menuItem = menu.getItem(ACTIVITY_NUM); 88 menuItem.setChecked(true); 89 90 91 }} 92

GridImageAdapter

java

1package com.example.instgramclone.Utils; 2 3import android.content.Context; 4import android.graphics.Bitmap; 5import android.view.LayoutInflater; 6import android.view.View; 7import android.view.ViewGroup; 8import android.widget.ArrayAdapter; 9import android.widget.ImageView; 10import android.widget.ProgressBar; 11 12 13import com.example.instgramclone.R; 14import com.nostra13.universalimageloader.core.ImageLoader; 15import com.nostra13.universalimageloader.core.assist.FailReason; 16import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; 17 18import java.util.ArrayList; 19 20public class GridImageAdapter extends ArrayAdapter<String> { 21 22 public Context mContext; 23 private LayoutInflater mInflater; 24 private int layoutResource; 25 private String mAppend; 26 public ArrayList<String> imgURLs; 27 28 public GridImageAdapter(Context context, int layoutResource, String append, ArrayList<String> imgURLs) { 29 super(context,layoutResource,imgURLs); 30 mInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 31 mContext = context; 32 33 this.layoutResource = layoutResource; 34 mAppend = append; 35 this.imgURLs = imgURLs; 36 } 37 private static class ViewHolder{ 38 ImageView image; 39 ProgressBar mProgressBar; 40 } 41 42 @Override 43 public View getView(int position, View convertView ,ViewGroup parent) { 44 45 final ViewHolder holder; 46 47 if(convertView == null){ 48 convertView = mInflater.inflate(layoutResource,parent,false); 49 holder = new ViewHolder(); 50 holder.mProgressBar=convertView.findViewById(R.id.profileProgressBar); 51 holder.image = convertView.findViewById(R.id.profile_photo); 52 53 convertView.setTag(holder); 54 } 55 else{ 56 holder = (ViewHolder)convertView.getTag(); 57 } 58 String imgURL = getItem(position); 59 60 ImageLoader imageLoader = ImageLoader.getInstance(); 61 62 imageLoader.displayImage(mAppend + imgURL, holder.image, new ImageLoadingListener() { 63 @Override 64 public void onLoadingStarted(String imageUri, View view) { 65 if(holder.mProgressBar != null){ 66 holder.mProgressBar.setVisibility(View.VISIBLE); 67 } 68 } 69 70 @Override 71 public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 72 if(holder.mProgressBar != null) { 73 holder.mProgressBar.setVisibility(View.GONE); 74 } 75 76 } 77 78 @Override 79 public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 80 if (holder.mProgressBar != null) { 81 holder.mProgressBar.setVisibility(View.GONE); 82 } 83 } 84 @Override 85 public void onLoadingCancelled(String imageUri, View view) { 86 if (holder.mProgressBar != null) { 87 holder.mProgressBar.setVisibility(View.GONE); 88 } 89 } 90 }); 91 92 return convertView; 93 } 94} 95

activity_profie

xml

1<?xml version="1.0" encoding="utf-8"?> 2<androidx.coordinatorlayout.widget.CoordinatorLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:orientation="vertical" android:layout_width="match_parent" 5 android:layout_height="match_parent"> 6 7 <RelativeLayout 8 android:layout_width="match_parent" 9 android:layout_height="match_parent"> 10 11 <include layout="@layout/layout_center_profile"/> 12 13 <include layout="@layout/layout_bottom_navigation_view"/> 14 15 <androidx.core.widget.ContentLoadingProgressBar 16 android:layout_width="150dp" 17 android:layout_height="150dp" 18 android:id="@+id/profileProgressBar" 19 android:layout_centerHorizontal="true" 20 android:layout_marginTop="100dp" 21 /> 22 </RelativeLayout> 23 24</androidx.coordinatorlayout.widget.CoordinatorLayout>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2019/10/26 02:52

``` の後ろには, ファイル名では無く言語名( java, xml 等)を記入してください. ファイル名は ``` の前の行等に記入してください.
jimbe

2019/10/26 04:13

修正ありがとうございます.
guest

回答1

0

ベストアンサー

holder.image = convertView.findViewById(R.id.profile_photo);

が機能しておらず, holder.image が null なのではないでしょうか.

投稿2019/10/26 02:55

jimbe

総合スコア13202

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問