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();
    }

我不在 Touch UI 上工作,而是在没有触摸事件的谷歌 DTV 上工作。我正在使用 DPAD 进行导航。一切正常,直到我到达列表中的最后一个位置。When the selected Item is lastvisible position and I press downKey in DPAD the highlighed(bacground item) first scroll one position up then goes down to lastvisible position. 请帮助我,我尝试了很多排列和组合,但无法解决问题

4

0 回答 0