2011-03-29 48 views
2

我有一个问题,试图在childView中进行设置。这是我现在正在尝试做..点击任何微调项目我得到一个坏的标记异常..无法添加窗口..token null不是为了一个窗口...有人可以告诉我wats错了>? ??可展开列表视图中的微调框?在子菜单

public class Form extends ExpandableListActivity{ 
ExpandableListAdapter mAdapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.form); 
    // Set up our adapter 
    mAdapter = new MyExpandableListAdapter(); 
    setListAdapter(mAdapter); 
    registerForContextMenu(getExpandableListView()); 
} 

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    menu.setHeaderTitle("Sample menu"); 
    // menu.add(0, 0, 0, R.string.expandable_list_sample_action); 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo(); 

    String title = ((TextView) info.targetView).getText().toString(); 

    int type = ExpandableListView.getPackedPositionType(info.packedPosition); 
    if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { 
     int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); 
     int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); 
     Toast.makeText(this, title + ": Child " + childPos + " clicked in group " + groupPos, 
       Toast.LENGTH_SHORT).show(); 
     return true; 
    } else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { 
     int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); 
     Toast.makeText(this, title + ": Group " + groupPos + " clicked", Toast.LENGTH_SHORT).show(); 
     return true; 
    } 

    return false; 
} 

/** 
* A simple adapter which maintains an ArrayList of photo resource Ids. 
* Each photo is displayed as an image. This adapter supports clearing the 
* list of photos and adding a new photo. 
* 
*/ 
public class MyExpandableListAdapter extends BaseExpandableListAdapter { 
    // Sample data set. children[i] contains the children (String[]) for groups[i]. 
    private String[] groups = { "Temperature", "Water flow", "Power usage", "Recent errors" }; 
    private String[][] children = { 
      { "Temp1", "Temp2", "Temp3", "Temp4" }, 
      { "Water", "Water", "Water", "Water" }, 
      { "Uage", "usage" }, 
      { "Error1", "Error2" } 
    }; 
    private String[] contents = { 
      "Dwight D. Eisenhower", 
      "John F. Kennedy", 
      "Lyndon B. Johnson", 
      "Richard Nixon", 
      "Gerald Ford", 
      "Jimmy Carter", 
      "Ronald Reagan", 
      "George H. W. Bush", 
      "Bill Clinton", 
      "George W. Bush", 
      "Barack Obama" 
    }; 


    public Object getChild(int groupPosition, int childPosition) { 
     return children[groupPosition][childPosition]; 
    } 

    public long getChildId(int groupPosition, int childPosition) { 
     return childPosition; 
    } 

    public int getChildrenCount(int groupPosition) { 
     return children[groupPosition].length; 
    } 

    public TextView getGenericView() { 
     // Layout parameters for the ExpandableListView 
     AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
       ViewGroup.LayoutParams.MATCH_PARENT, 64); 

     TextView textView = new TextView(Form.this); 
     textView.setLayoutParams(lp); 
     // Center the text vertically 
     textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); 
     // Set the text starting position 
     textView.setPadding(36, 0, 0, 0); 
     return textView; 
    } 

    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, 
      View convertView, ViewGroup parent) { 
     /*TextView textView = getGenericView(); 
     textView.setText(getChild(groupPosition, childPosition).toString()+"arun"); 
     return textView;*/ 
     final Spinner spinner = new Spinner(getApplicationContext()); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), 
       android.R.layout.simple_spinner_item, contents); 
     spinner.setAdapter(adapter); 
     spinner.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 
      public void onItemSelected(AdapterView<?> arg0, 
      View arg1, int arg2, long arg3) 
      { 
       int index = spinner.getSelectedItemPosition(); 
       Toast.makeText(getBaseContext(), 
        "You have selected item : " + contents[index], 
        Toast.LENGTH_SHORT).show();     
      } 

      public void onNothingSelected(AdapterView<?> arg0) {} 
     }); 

     return spinner; 
    } 

    public Object getGroup(int groupPosition) { 
     return groups[groupPosition]; 
    } 

    public int getGroupCount() { 
     return groups.length; 
    } 

    public long getGroupId(int groupPosition) { 
     return groupPosition; 
    } 

    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
      ViewGroup parent) { 
     TextView textView = getGenericView(); 
     textView.setText(getGroup(groupPosition).toString()); 
     return textView; 
    } 

    public boolean isChildSelectable(int groupPosition, int childPosition) { 
     return true; 
    } 

    public boolean hasStableIds() { 
     return true; 
    } 

} 

}

回答

0

也许你需要实现?

public class SpinnerActivity extends Activity implements OnItemSelectedListener { 
    ... 

    public void onItemSelected(AdapterView<?> parent, View view, 
      int pos, long id) { 
     // An item was selected. You can retrieve the selected item using 
     // parent.getItemAtPosition(pos) 
    } 

    public void onNothingSelected(AdapterView<?> parent) { 
     // Another interface callback 
    } 
} 
相关问题