1

私はカスタムリストビューに取り組んでいます 私の活動はこのようなものです

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 つ上の位置にスクロールしてから、最後に表示される位置まで下がります。これについて私を助けてください。私は非常に多くの順列と組み合わせを試しましたが、問題を解決できませんでした

4

0 に答える 0