I'm using an ExpandableListView extending BaseExpandableListAdapter in a Fragment and I show it inside a ViewPager. I'm trying to show the Text of each TextView of the childs when I click it. I don't know why it shut down the app when I press a child item. Could someone help me? Thank you a lot!
Here is my Fragment and Adapter:
let placesData = UserDefaults.standard.object(forKey: "places") as? NSData
if let placesData = placesData {
let placesArray = NSKeyedUnarchiver.unarchiveObject(with: placesData as Data) as? [Place]
print(placesArray)
}
And here is my layout:
my %CONFIG = (
'scriptURI' => "data.js",
'imageFolder' => "images/",
'outputFileName' => 'testImg.swf',
'delay' => 3, # delay between images
'fps' => 10,
'fadeFrame' => 10 # 1 second fade in/out
);
sub addImgToMovie {
my $img = shift;
my $frameNo = shift;
my $movie = shift;
my $movieClip = $movie -> new_mc();
my $jpeg = $movieClip -> new_jpeg($img);
$jpeg -> place(Frame => 1);
my $mc_i = $movieClip -> place(Frame => $frameNo);
my $onloadScript = sprintf("
this._alpha = %d;
this.apf = %f;
this.frameIndex = %d;
this.fadeOutFrameIndex = %d;
", 0, 100 / $CONFIG{'fadeFrame'}, 1, $CONFIG{'delay'} * $CONFIG{'fps'} - $CONFIG{'fadeFrame'});
$mc_i -> onClipEvent('Load') -> compile($onloadScript);
my $onEnterFrameScript = "
this.frameIndex += 1;
if ((this._alpha < 100) && (this.frameIndex < this.fadeOutFrameIndex)) {
this._alpha += this.apf;
} else if (this.frameIndex > this.fadeOutFrameIndex) {
this._alpha -= this.apf;
}
";
$mc_i -> onClipEvent('EnterFrame') -> compile($onEnterFrameScript);
return $movie;
}
my $movie = SWF::Builder -> new(
FrameRate => $CONFIG{'fps'},
FrameSize => [0, 0, 180, 163],
BackgroundColor => 'ffffff'
);
my $img = $CONFIG{'imageFolder'} . "adimage1.jpg";
$movie = addImgToMovie($img, 1, $movie);
$movie -> save($CONFIG{'outputFileName'});
EDIT:
Here is the logcat message:
public class SavedTabsFragment extends Fragment {
private ArrayList<String> parentItems = new ArrayList<>();
private ArrayList<Object> childItems = new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_explistview, null);
ExpandableListView elv = (ExpandableListView) v.findViewById(R.id.expandableListView1);
elv.setGroupIndicator(null);
elv.setClickable(true);
setGroupParents();
setChildData();
SavedTabsListAdapter adapter = new SavedTabsListAdapter(parentItems, childItems);
adapter.setInflater((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE), this);
elv.setAdapter(adapter);
// elv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
// @Override
// public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
// Toast.makeText(getActivity()," holaaa",Toast.LENGTH_SHORT).show();
//
// return false;
// }
// });
return v;
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//TODO
}
public static SavedTabsFragment newInstance(){
SavedTabsFragment savedTabsFragment = new SavedTabsFragment();
Bundle args = new Bundle();
//TODO info del bundle
return savedTabsFragment;
}
public void setGroupParents() {
parentItems.add("Androwwid");
parentItems.add("Core Java");
parentItems.add("Desktop Java");
parentItems.add("Enterprise Java");
}
public void setChildData() {
// Android
ArrayList<String> child = new ArrayList<>();
child.add("Core");
child.add("Games");
childItems.add(child);
// Core Java
child = new ArrayList<>();
child.add("Apache");
child.add("Applet");
child.add("AspectJ");
child.add("Beans");
child.add("Crypto");
childItems.add(child);
// Desktop Java
child = new ArrayList<>();
child.add("Accessibility");
child.add("AWT");
child.add("ImageIO");
child.add("Print");
childItems.add(child);
// Enterprise Java
child = new ArrayList<>();
child.add("EJB3");
child.add("GWT");
child.add("Hibernate");
child.add("JSP");
childItems.add(child);
}
public class SavedTabsListAdapter extends BaseExpandableListAdapter {
private ArrayList<String> parentItems, child;
private ArrayList<Object> childItems;
private LayoutInflater inflater;
private Activity activity;
public SavedTabsListAdapter(ArrayList<String> parentItems, ArrayList<Object> childItems) {
this.childItems = childItems;
this.parentItems = parentItems;
}
public int getGroupCount() {
return parentItems.size();
}
public int getChildrenCount(int i) {
return ((ArrayList<String>) childItems.get(i)).size();
}
public Object getGroup(int i) {
return parentItems.get(i);
}
public Object getChild(int i, int i1) {
return null;
}
public long getGroupId(int i) {
return 0;
}
public long getChildId(int i, int i1) {
return 0;
}
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.row, null);
}
((CheckedTextView) convertView).setText(parentItems.get(groupPosition));
((CheckedTextView) convertView).setChecked(isExpanded);
return convertView;
}
@Override
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
child = (ArrayList<String>) childItems.get(groupPosition);
TextView textView = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.group, null);
}
textView = new TextView(SavedTabsFragment.this.getActivity());
textView = (TextView) convertView.findViewById(R.id.textView1);
textView.setText(child.get(childPosition));
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(activity, child.get(childPosition)+" holaaa",
Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
@Override
public void onGroupCollapsed(int groupPosition) {
super.onGroupCollapsed(groupPosition);
}
@Override
public void onGroupExpanded(int groupPosition) {
super.onGroupExpanded(groupPosition);
}
public void setInflater(LayoutInflater inflater, SavedTabsFragment savedTabsFragment) {
this.inflater = inflater;
// this = savedTabsFragment;
}
}
}
答案 0 :(得分:0)
use OnItemClickListener, not CREATE OR REPLACE FUNCTION accdisvalues(thisdate date)
RETURNS void AS
$BODY$
Update my_table
Set
mycolumn = true
where mydatecol = thisdate;
$BODY$
LANGUAGE sql VOLATILE SECURITY DEFINER
COST 100;
ALTER FUNCTION accdisvalues(date)
OWNER TO myconnect;