ここでは、64画像ビューのGridview(xml)を作成し、異なる場所に異なる画像をロードしようとする入力文字列に基づいています。GridView -NullPointerExceptionエラー - "子画像ビュー"にアクセスしよう
package com.example.android.chess;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.GridView;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridView = (GridView) findViewById(R.id.gridView1); //gridView null
String FEN="/rnbqkbnr/pppppppp/8/8/8/8/8/8/PPPPPPPP/RNBQKBNR/";
LoadPosition(gridView, FEN);
}
public void LoadPosition(GridView gridView, String FEN)
{
int i=0;
ImageView child;
for(int l=0; l<gridView.getCount(); l++) {
child= (ImageView) gridView.getChildAt(l);
char c = FEN.charAt(i);
if (c=='/')
i=i+1;
else if(Character.isDigit(c)) {
i=i+1;
l = l + c-1;
}
else
{
child = (ImageView) gridView.getChildAt(l);
c = FEN.charAt(i);
LoadPieceImage(child,c);
i=i+1
}
}
}
}
LoadPieceImage(子、C)。 char cに基づいて異なる画像を読み込むメソッドです。
gridView.getChildAt(i)のグリッド表示がnullで、 が表示されていますが、java.lang.NullPointerExceptionが発生しています。
XML ...
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<GridView
android:id="@+id/gridView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="8"
android:layout_gravity="center"
android:padding="2dp"
android:background="#8C8C8C"
>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:gravity="center"
android:background="#ffffff"
/>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:background="#8C8C8C"
android:gravity="center" />
....................................
</GridView>
</ScrollView>
あなたはcontentviewがfindViewByIDとGridViewのを見つけたい場合は、これを試してみてください、私はそれを
今setContentView(R.layout.activity_main)。エラーが発生しました 原因:java.lang.UnsupportedOperationException:addView(View、LayoutParams)がAdapterViewでサポートされていません.......................... ... at com.example.android.chess.MainActivity.onCreate(MainActivity.java:14) – Murali
こんにちは、私はこのエラーが発生している理由を教えてください。ありがとう事前に – Murali