リストビューで選択した項目の背景を変更することができます。リストが作成されると、最初の項目の背景が強調表示されます。次のコードは、 "performItemClick"を実行しようとするとエラーが発生します。作成時にリストビューの最初の項目をハイライト表示
アレイアダプタでgetViewを変更する方法があります。しかし、JavaコードにMyCustomAdapterクラスを作成しようとすると、「Android.widget.ArrayAdapterにデフォルトの構造はありません」というエラーが表示されます
これを行うにはArrayAdapterクラスの拡張を作成する必要がある場合は、どのように私はこのエラーを回避します。私は提案を開いています別の方法がある場合。
おかげ
package com.hofficer.aclsfast;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import java.lang.reflect.Array;
public class NarrowChild extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_narrow_child);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//fix orientation
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//MyCustomAdapter adapter = new MyCustomAdapter();
createList();
}
/*
class MyCustomAdapter extends ArrayAdapter{
}*/
void createList(){
String[] narrowChoices = {"aFib/Flutter", "Narrow Cmplx Tachycardia", "PSVT", "Junctional Tachycardia", "Multifocal Tachycardia"};
ListAdapter theAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, narrowChoices);
final ListView listview = (ListView) findViewById(R.id.narrowListView);
listview.setAdapter(theAdapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
//clear menu and highlight selected item
for (int i = 0; i < 5; i++) {
listview.getChildAt(i).setBackgroundColor(Color.WHITE);
}
listview.getChildAt(position).setBackgroundColor(Color.CYAN);
}
});
Boolean result = listview.performItemClick(listview,0,0); //THIS GIVES ERROR NULL POINT EXCEPTION
}
}
CustomArrayAdpterを使用しますか? – Krish
どうすればいいですか?アクティビティクラス内でクラスを作成しようとしましたが、最初の質問で述べたエラーが発生しています。 – imsmooth
あなたの要件は常に最初の行を強調表示することですか? – Krish