Android的列表视图 [英] Android listview

查看:142
本文介绍了Android的列表视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何一个可以帮助我在列表视图中的第一项应该是默认选中

Any one can help me in listview the first item should be selected by default

package com.globalscholar.announcement;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.AdapterView.OnItemClickListener;

import com.globalscholar.R;

public class PublishAnnouncement extends ListActivity implements OnClickListener, OnItemClickListener{
    private ListView lViewPub;
    private String lv_items[] = {"Teachers" , "Students", "Administration"};
    RadioButton radioSSP;
    RadioButton radioPubAll1;
    Button backPub;
    Button donePub;
    int role = 0;

    //venkat
    int selectedPublishOption = -1;
    AudienceWrapper audienceDetails = null; 

    ArrayList<Boolean> checkedStates = new ArrayList<Boolean>();
    boolean checkedArray[];

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.publishannouncement);

    backPub=(Button)findViewById(R.id.buttPubBack);
    backPub.setOnClickListener(this);

    donePub=(Button)findViewById(R.id.buttPubDone);
    donePub.setOnClickListener(this);

    radioSSP=(RadioButton)findViewById(R.id.radioPubSSM);
    radioSSP.setOnClickListener(this);

    radioPubAll1=(RadioButton)findViewById(R.id.radioPubAll);
    radioPubAll1.setOnClickListener(this);
    radioPubAll1.setChecked(true);


    lViewPub = (ListView) findViewById(android.R.id.list);
    lViewPub.setOnItemClickListener(this);
    //  Set option as Multiple Choice. So that user can be able to select more the one option from list
    lViewPub.setAdapter(new ArrayAdapter<String>(this,
            R.layout.announcementlistviewstyle, lv_items));
    lViewPub.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    lViewPub.setVerticalScrollBarEnabled(false);
    getListView().setSelection(0);
    //venkat
    Bundle b = getIntent().getExtras();

    checkedStates.add(0, false);
    checkedStates.add(1, false);
    checkedStates.add(2, false);

    if(b!= null){
        audienceDetails = (AudienceWrapper) b.getSerializable("audienceDetails");
        selectedPublishOption = b.getInt("selectedPublishOption");
        //  checked = b.getLongArray("selectedPublishOptionsList");
        checkedArray =b.getBooleanArray("selectedPublishOptionsList");
        if(checkedArray!=null){
            Log.d("PA","Bundle Checked Array Size :"+checkedArray.length);
            for(int i=0;i<checkedArray.length;i++){
                checkedStates.set(i, checkedArray[i]);
                Log.w("PA","CheckedStatus index:"+i+"Status"+checkedStates.get(i));
                if(checkedStates.get(i))
                    lViewPub.setItemChecked(i, true);
            }
        }

        Log.d("selected publishoption in PublishAnnouncement--->", selectedPublishOption+"");
        if(selectedPublishOption == 0){
            radioPubAll1.setChecked(false);
            radioSSP.setChecked(true);
            lViewPub.setVisibility(BIND_AUTO_CREATE);
            //for checking the options                  
        }
    }
    //venkatend
    PublishAnnouncement.this.getListView().setOnItemClickListener(this);
}



public void onItemClick(AdapterView<?> arg0, View arg1, int position,
        long arg3) {        
    Log.d("onItemClick position in PublishAnnouncement----->",position+"");
    //role value updated in wrong way when u double click on Item
    //solved role problem in done button
    /* if(position == 0){
         role+= 4;
     }
     else if(position == 1){
         role+=8;
     }
     else if(position == 2){
         role+=2;
     }else{
         role+=14;
     }  
     Log.d("PA","Role :"+role);*/

    //venkat for selected publishes
    boolean currentlyChecked = checkedStates.get(position);  
    checkedStates.set(position, !currentlyChecked); 
    if(checkedArray!=null)
        checkedArray[position] = !currentlyChecked;



}

public void onClick(View v) {

    switch (v.getId()) {
    case R.id.radioPubSSM:
        lViewPub.setVisibility(BIND_AUTO_CREATE);
        break;
    case R.id.buttPubBack:
        onKeyDown(KeyEvent.KEYCODE_BACK, 
                new KeyEvent(KeyEvent.ACTION_DOWN,
                        KeyEvent.KEYCODE_BACK));
        break;
    case R.id.buttPubDone:
        //venkat
        int allSelect = 0;
        int sppCount=0;
        //venkatend
        Intent newPubDone= new Intent(PublishAnnouncement.this,Audience.class);
        Bundle b = new Bundle();
        if(radioPubAll1.isChecked()){
            role = 14;
            //venkat
            allSelect = 1;
        }else if(radioSSP.isChecked()){
            int len = checkedStates.size();     
            if(checkedArray == null)
                checkedArray = new boolean [len];
            for(int i=0;i<len;i++){
                checkedArray[i] = checkedStates.get(i);
                if(checkedStates.get(i)==true){
                    sppCount++;
                }
            }
            Log.d("PA","Count :"+sppCount);
        }
        if(sppCount==0 && radioSSP.isChecked()){
            AlertDialog.Builder alertBox = new AlertDialog.Builder(this);
            alertBox.setMessage("Please select Specific Memebers");
            alertBox.setNeutralButton("Ok", null);
            alertBox.show();

        }else{
            b.putInt("SelectedPublishOption", allSelect);
            int finalRole = 0;
            if(allSelect== 0){
                // b.putLongArray("SelectedPublishOptionsList", checked);
                b.putBooleanArray("SelectedPublishOptionsList", checkedArray);
                if(checkedArray!=null){
                    if(checkedArray[0]){
                        finalRole+=4;
                    }
                    if(checkedArray[1]){
                        finalRole+=8;
                    }
                    if(checkedArray[2]){
                        finalRole+=2;
                    }
                }
                Log.d("PA","After selecting final Role Value :"+finalRole);
                if(audienceDetails!=null)
                    audienceDetails.setRoleValue(finalRole);

            }
            b.putInt("role", finalRole);
            //venkatend
            newPubDone.putExtras(b);
            setResult(RESULT_OK, newPubDone);
            System.out.println("Role value is" + role);
            finish();

        }
        break;
    case R.id.radioPubAll:
        lViewPub.setVisibility(-1);

        //venkat testing logic
        if(checkedArray!=null){
            int len= checkedArray.length;
            if(len > 0){
                for(int i=0;i<len;i++){                             
                    lViewPub.setItemChecked(i, false);
                    System.out.println("all selected Position selected "+checkedArray[i]);
                }
            }
        }
        break;
    default:
        break;
    }
}
}

感谢

推荐答案

您是否尝试过使用:

    ListView lv = getListView();
    lv.setFocusable(true);
    lv.setFocusableInTouchMode(true);
    lv.setSelection(0);

这篇关于Android的列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆