2016-11-10 2 views
0

リストビュー内の項目をクリックするとリストビューが表示されます。別の子リストビューが表示されます。どのように私は、子項目をクリックすることで、親リストビューの位置を取得することができます子リスト項目をクリックして親リスト項目を呼び出すにはどうすればいいですか

主な活動:

public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { 
    newListitems2.clear(); 

    newListitems2.addAll(itemsList1); 

    dialog = new Dialog(PendingOrdersActitvity.this); 
    dialog.setContentView(R.layout.itembumping); 
    dialog.show(); 

    listView1.setTag(position); 
    list1 = (ListView) dialog.findViewById(R.id.list1); 

    ItemBumpingAdapter adapter2 = new ItemBumpingAdapter(PendingOrdersActitvity.this, newListitems2); 
    list1.setAdapter(adapter2); 

    Button okButton = (Button) dialog.findViewById(R.id.ok1); 
    okButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      dialog.dismiss(); 
     } 
    }); 
    Button cancelButton = (Button) dialog.findViewById(R.id.Cancel1); 
    cancelButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      dialog.dismiss(); 
     } 
    }); 
    return false; 
} 

親リスト:

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

    ViewHolder holder; 
    String item = null, qty = null; 
    if (convertView == null) { 
     holder = new ViewHolder(); 
     convertView = inflator.inflate(R.layout.itembumpingadapter, null); 
     holder.qty = (TextView) convertView.findViewById(R.id.qty); 
     holder.name = (TextView) convertView.findViewById(R.id.item); 
     holder.childText = (TextView) convertView 
       .findViewById(R.id.childitem); 
     holder.qtyChild = (TextView) convertView 
       .findViewById(R.id.qtychild); 
     holder.checkbox = (CheckBox) convertView.findViewById(R.id.chckbox1); 
     convertView.setTag(holder); 

    } else { 

     holder = (ViewHolder) convertView.getTag(); 
    } 
    parentobjid = newListitems.get(position).getParentobjectid(); 
    if (!parentobjid.isEmpty()) { 
     holder.name.setText(" " + newListitems.get(position).getItemnNameDisplay()); 
     holder.name.setTextColor(Color.parseColor("#CC0000")); 
     holder.qty.setText("  " + String.valueOf(newListitems.get(position) 
       .getQuantityDisplay())); 
     holder.qty.setTextColor(Color.parseColor("#CC0000")); 
    } else { 
     holder.name.setText(newListitems.get(position).getItemnNameDisplay()); 
     holder.qty.setText(String.valueOf(newListitems.get(position).getQuantityDisplay())); 
     holder.name.setTextColor(Color.parseColor("#FFFFFF")); 
    } 

    return convertView; 
} 

子供ListAdapter:

if (convertView == null) { 

     holder = new ViewHolder(); 
     convertView = inflator.inflate(R.layout.itembumpingadapter, null); 
     holder.qty = (TextView) convertView.findViewById(R.id.qty); 
     holder.name = (TextView) convertView.findViewById(R.id.item); 
     holder.childText = (TextView) convertView 
       .findViewById(R.id.childitem); 
     holder.qtyChild = (TextView) convertView 
       .findViewById(R.id.qtychild); 
     holder.checkbox = (CheckBox) convertView.findViewById(R.id.chckbox1); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    parentobjid = newListitems.get(position).getParentobjectid(); 
    if (!parentobjid.isEmpty()) { 
     holder.name.setText(" " + newListitems.get(position).getItemnNameDisplay()); 
     holder.name.setTextColor(Color.parseColor("#CC0000")); 
     holder.qty.setText(" " + String.valueOf(newListitems.get(position).getQuantityDisplay())); 
     holder.qty.setTextColor(Color.parseColor("#CC0000")); 
    } else { 
     holder.name.setText(newListitems.get(position).getItemnNameDisplay()); 
     holder.qty.setText(String.valueOf(newListitems.get(position).getQuantityDisplay())); 
     holder.name.setTextColor(Color.parseColor("#FFFFFF")); 
     holder.qty.setTextColor(Color.parseColor("#FFFFFF")); 
     holder.checkbox.setChecked(false); 

     holder.checkbox.setTag(position); 
     holder.checkbox.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       int pos = (Integer) v.getTag();//Cast object to integer 
       newListitems.get(pos).setChecked(!newListitems.get(pos).isChecked()); 
      } 
     }); 
     if (newListitems.get(position).isChecked()) { 
      holder.name.setEnabled(true); 
      holder.name.setBackgroundColor(Color.parseColor("#DCDBDB")); 

     } else { 
      holder.name.setEnabled(false); 
     } 
    } 
    return convertView; 
+0

あなたは拡張リストビューを意味しますか? –

+0

私は;リスト内のアイテムをクリックすると、今、子リストと同じリストを取得しています。子アイテムをクリックすると必要です。親アイテムを無効にする必要があります – mallika

答えて

0

2を作成リストオブジェクトlike

親項目の[更新]をクリックし list_child

listview Adapterに割り当てると、リストビューが表示されている1 flagを設定する(list_parentアサインが子供用のアダプタと1する場合のようなflag0を設定)

onBackPressedチェックフラグが1である場合には[割り当てアダプタとフラグが0その後、finish();

ある場合しかし、あなたはnotifyDataSetChanged

を呼び出すアダプタには、リストオブジェクトを割り当てるときに、すべての回を覚えて

これは簡単なリストビューのコードです:

public class ListViewAndroidExample extends Activity { 
    ListView listView ; 
    int flag=0;//parent 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_list_view_android_example); 

     // Get ListView object from xml 
     listView = (ListView) findViewById(R.id.list); 

     // Defined Array values to show in ListView 
     String[] values_parent = 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" 
             }; 

     String[] values_child= new String[] { "Child 1", 
       "Child 2", 
       "Child 3", 
       "Child 4" 
      }; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, values_parent); 


     // Assign adapter to ListView 
     listView.setAdapter(adapter); 

     // ListView Item Click Listener 
     listView.setOnItemClickListener(new OnItemClickListener() { 

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

       // ListView Clicked item index 
       int itemPosition  = position; 

       if(flag=0) 
       { 
       flag=1; 
       adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, values_child); 
       } 
       else 
        { 
       flag=0; 
        } 

       } 

     }); 
    } 



@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    if(flag=0) 
    finish(); 
    else{ 
    adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, values_parent); 
     } 
} 

} 
+0

2つの異なる親オブジェクトと子オブジェクトがありますか? –

+0

私はリストビューのための2つのアダプタを持っていますが、親の項目をclikingすることで同じデータを持っています。チェックボックスを使って子リストと同じリストを取得したい – mallika

+0

私はロジックを無効にしましたが、親リストにない子リストで働いています – mallika

関連する問題