0

最初のListViewをクリックして、あるListViewから別のListViewに移動する必要があるアプリケーションを開発しています。2番目のアクティビティListViewは、1つのyesアイコン画像とTextViewを持つカスタムListViewです。開始時に画像アイコンが表示されず、リストアイテムをクリックすると、対応する画像が表示されます。2番目のListViewはシングルクリックのリストビューです。![ここに画像の説明を入力してください] [1]戻るボタンをクリックして、もう一度最初のボタンをクリックするとListView、2番目のListViewのクリックされたアイテムが非表示になります。

私はAndroidを初めて使用し、listitemのクリック状態をどのように管理する必要があるのか​​わかりません。Plzヘルプ...1番目の画面から2番目の画面に移動し、1番目のリストビューアイテムで再クリックが行われたときにリストビューアイテムの状態を維持する必要があります。

2番目のリストビューアクティビティ

SharedPreferences pref;
 private static String names[] = {"SV3","SV4","SV6","LV1"};  
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.selectibx);
    lv=(ListView)findViewById(R.id.listView1);
    adapter = new LvCustomAdapter(this, names); 
    lv.setAdapter(adapter);
   LoadSelections();
    ImageView img=(ImageView) lv.findViewById(R.id.image);
  if(img!=null)
    {
        img.setImageResource(R.drawable.black_arrow);
        img.setVisibility(View.VISIBLE);
        }
 lv.setOnItemClickListener(this); 
    back=(ImageView)findViewById(R.id.imageback);
    back.setOnClickListener(new View.OnClickListener() {
    public void onClick(View arg0) {
Intent = new Intent(getApplicationContext(),MainActivity.class);
Bundle b=new Bundle();
b.putString("state", "clicked");
   intent.putExtras(b);
setResult(RESULT_OK, intent);
startActivity(intent);  
finish();
}

    });
}

public void onItemClick(AdapterView<?> lvv, View view, int position, long id) {



    if (current != -1) {
        View last = lvv.getChildAt(current); // the last one clicked
        last.findViewById(R.id.image).setVisibility(View.GONE);
     }
    view.findViewById(R.id.image).setVisibility(View.VISIBLE);
    current = position; // remember the new clicked position

    System.out.println("Selected State is: "+current);

    SaveSelections(view);

}

private void SaveSelections(View v) {
    // TODO Auto-generated method stub
     SharedPreferences settings = getSharedPreferences( PREFS_NAME,0 );
        SharedPreferences.Editor editor = settings.edit();

        editor.putInt("Raman", current);
        editor.commit();
}

private void LoadSelections() {


        pref = this.getApplicationContext().getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE);
        int xy=pref.getInt("Raman",1);
        adapter = new LvCustomAdapter(this, names);   
        lv.setAdapter(adapter);
          lv.setSelection(xy);

          System.out.println(lv.getSelectedItemPosition()+"****"+xy);

         View v=lv.getChildAt(xy);

    }

}

カスタムアダプタクラス:

public class LvCustomAdapter extends BaseAdapter  {
 protected ListView mListView;
   public String title[];  
   //public String designations[];
   public Activity context;  
    public LayoutInflater inflater; 
    int current=-1;
    public LvCustomAdapter(Activity context,String[] title) {  
        super();  

        this.context = context;  
        this.title = title;  
        this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
    }  

    public int getCount() {  
        // TODO Auto-generated method stub  
        return title.length;  
    }  

    public Object getItem(int position) {  
        // TODO Auto-generated method stub  
        return null;  
    }  

    public long getItemId(int position) {  
        // TODO Auto-generated method stub  
        return 0;  
    }  

    public static class ViewHolder  
    {  
        ImageView imgarrow;  
        TextView txtViewName;  


    }  

    public View getView(int position, View convertView, ViewGroup parent) {  
        // TODO Auto-generated method stub  

        ViewHolder holder;  
        if(convertView==null)  
        {  
            holder = new ViewHolder();  
            convertView = inflater.inflate(R.layout.commonlist, null);  

            holder.txtViewName = (TextView) convertView.findViewById(R.id.tvItem);  


            holder.imgarrow = (ImageView) convertView.findViewById(R.id.image);  


           /* holder.email.setOnClickListener(emailClickListener);
            holder.mobile.setOnClickListener(mobileClickListener);
            holder.phone.setOnClickListener(phoneClickListener);
            convertView.setTag(holder);  */
            //int a=convertView.getSelectedItemPosition();
            int a=position;



            convertView.setTag(holder); 
        }  
        else  
            holder=(ViewHolder)convertView.getTag();  
   holder.txtViewName.setText(title[position]); 
    holder.imgarrow.setImageResource(R.drawable.black_arrow);
holder.imgarrow.setVisibility(View.INVISIBLE);

        return convertView;  
    }   
}  

ありがとう....

4

1 に答える 1

1

使用できる状態を維持するために..

Shared Preferences
Save your desired values in onPause() and get them again in onResume() 

それがあなたのために働くことを願っています。

于 2012-09-21T11:23:07.507 に答える