私はカスタムリストビューに取り組んでいます 私の活動はこのようなものです
public class MainActivity extends Activity {
ListView listView = null;
int position = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.list);
String[] values = new String[] { "Android List View",
"Adapter implementation",
"Simple List View In Android",
"Create List View Android",
"Android Example",
"List View Source Code",
"List View Array Adapter",
"Android Example List View"
};
mAdapter = new MyListAdapter(this, R.layout.list_item, new ArrayList<String>(Arrays.asList(values)));
listView.setAdapter(mAdapter);
listView.setOnItemSelectedListener(mItemListener);
}
private AdapterView.OnItemSelectedListener mItemListener = new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position1, long arg3) {
mAdapter.setSelection(position1);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
};
}
リストアダプターのgetViewは
@Override
public View getView(int position, View convertView, ViewGroup parent) {
String result = mSearchResultList.get(position);
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(mResourceId, parent, false);
holder.mTextView1 = (TextView)convertView.findViewById(R.id.list_text1);
holder.mTextView2 = (TextView)convertView.findViewById(R.id.list_text2);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
if (mSelected == position) {
holder.mTextView1.setBackgroundResource(R.drawable.epg_genre_btn_focus);
}else {
holder.mTextView1.setBackground(null);
}
holder.mTextView1.setText(result) ;
holder.mTextView2.setText(result) ;
return convertView;
}
int mSelected =0;
void setSelection(int pos){
mSelected = pos;
notifyDataSetChanged();
}
私はタッチ UI ではなく、タッチ イベントのない Google DTV で作業しています。ナビゲーションにはDPADを使用しています。リストの最後に表示される位置に到達するまで、すべてが正常に機能しています。選択した項目が最後に表示される位置にあり、DPAD で downKey を押すと、強調表示された (背景の項目) が最初に 1 つ上の位置にスクロールしてから、最後に表示される位置まで下がります。これについて私を助けてください。私は非常に多くの順列と組み合わせを試しましたが、問題を解決できませんでした