私はヘッダーを持つListViewを持っています。そのヘッダーは私のListViewでposition == 0
を取ることを知っています。Android ListView-Headerが最初の位置(位置(0))になります
私の配列には3つの文字列があります。ヘッダーが最初の位置を取る場合。私の配列は2つ残っています。
if (array[position] == array[0]) {
Toast.makeText(UserAreaActivity.this, "You've selected the first Array-String, Toast.LENGTH_SHORT).show();
が、私はこれを記述する必要があり:通常
次のように記述し、私がクリックしたときにヘッダーが、私は私のアプリで強制閉じるを取得し、第一の位置がかかるため、
if (array[position] == array[1]) {
Toast.makeText(UserAreaActivity.this, "You've selected the first Array-String, Toast.LENGTH_SHORT).show();
しかし、 3番目のエントリに。
私の質問に対する1つの答えごとに感謝します。
これは私が取得エラーがこれです全体のクリックリスナー
private void addDrawerItems() {
final String[] array = { "Earn Coins", "Get Likes", "Logout"};
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array);
View header = getLayoutInflater().inflate(R.layout.header, null, false);
mDrawerList.addHeaderView(header, "null", false);
mDrawerList.setAdapter(mAdapter);
mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(array[position]==array[1]){
Toast.makeText(UserAreaActivity.this, "You've selected Earn Coins!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UserAreaActivity.this, UserAreaActivity.class);
UserAreaActivity.this.startActivity(intent);
}else if(array[position]==array[2]){
Toast.makeText(UserAreaActivity.this, "You've selected Get Likes!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UserAreaActivity.this, GetLikesActivity.class);
UserAreaActivity.this.startActivity(intent);
}else if(array[position]==array[3]){
Toast.makeText(UserAreaActivity.this, "You've selected Logout!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UserAreaActivity.this,LoginActivity.class);
UserAreaActivity.this.startActivity(intent);
}else{
Toast.makeText(UserAreaActivity.this,"Whatever..",Toast.LENGTH_SHORT).show();
}
}
});
}
です:
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
at de.enesak.likelounge.UserAreaActivity$1.onItemClick(UserAreaActivity.java:59)
at android.widget.AdapterView.performItemClick(AdapterView.java:299)
at android.widget.AbsListView.performItemClick(AbsListView.java:1113)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904)
at android.widget.AbsListView$3.run(AbsListView.java:3638)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Hey!ご回答有難うございます。あなたのコードを使用することで、私はもうエラーは表示されませんが、今度はどのアイテムをクリックしても問題は起こりません。 – Ketarr
申し訳ありません。私は休憩を挿入するのを忘れました...私は答えを更新しました – W0rmH0le
パーフェクト!ブレークラインでそれは動作します。どうもありがとうございます。あなたは、あなたの方法がなぜ機能し、なぜ私のことを教えてくれませんか?私のために本当に役立つだろう。 – Ketarr