- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,每次出现一些新信息时,我都会尝试更改我的 ExpandableList
,为此我认为清除()然后将其放回原处会更容易,问题是它崩溃了。我对此了解不够,无法弄清楚。
编辑:好的,我知道问题来自 onActivityResult()
,但如何修复它?
// Main Activity
package com.thehuntestshadow.laken;
import android.app.Activity;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import android.content.Intent;
import android.widget.ImageButton;
import android.view.View.OnClickListener;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ExpandableListView.OnGroupCollapseListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class MainActivity extends AppCompatActivity{
MyDBHandler dbHandler =new MyDBHandler(this,null,null,1);
MyDBManager dbManager = new MyDBManager(this,null,null,1);
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
expListView = (ExpandableListView) findViewById(R.id.lvExp) ;
prepareListData();
listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday","Friday", "Saturday", "Sunday"};
expListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
// Toast.makeText(getApplicationContext(),
// "Group Clicked " + listDataHeader.get(groupPosition),
// Toast.LENGTH_SHORT).show();
return false;
}
});
// Listview Group expanded listener
expListView.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Toast.makeText(getApplicationContext(),
listDataHeader.get(groupPosition) + " Expanded",
Toast.LENGTH_SHORT).show();
}
});
// Listview Group collasped listener
expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
Toast.makeText(getApplicationContext(),
listDataHeader.get(groupPosition) + " Collapsed",
Toast.LENGTH_SHORT).show();
}
});
// Listview on child click listener
expListView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
// TODO Auto-generated method stub
Toast.makeText(
getApplicationContext(),
listDataHeader.get(groupPosition)
+ " : "
+ listDataChild.get(
listDataHeader.get(groupPosition)).get(
childPosition), Toast.LENGTH_SHORT)
.show();
return false;
}
});
}
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
int[] x = new int[10001];
x = dbManager.get_result(1);
// Adding child data
listDataHeader.add("Monday");
listDataHeader.add("Tuesday");
listDataHeader.add("Wednesday");
listDataHeader.add("Thursday");
listDataHeader.add("Friday");
listDataHeader.add("Saturday");
listDataHeader.add("Sunday");
String meow;
// Adding child data
List<String> monday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);monday.add(meow);}
x = dbManager.get_result(2);
List<String> tuesday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);tuesday.add(meow);}
x = dbManager.get_result(3);
List<String> wednsday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);wednsday.add(meow);}
x = dbManager.get_result(4);
List<String> thursday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);thursday.add(meow);}
x = dbManager.get_result(5);
List<String> friday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);friday.add(meow);}
x = dbManager.get_result(6);
List<String> saturday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);saturday.add(meow);}
x = dbManager.get_result(6);
List<String> sunday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);sunday.add(meow);}
listDataChild.put(listDataHeader.get(0), monday); // Header, Child data
listDataChild.put(listDataHeader.get(1), tuesday);
listDataChild.put(listDataHeader.get(2), wednsday);
listDataChild.put(listDataHeader.get(3),thursday);
listDataChild.put(listDataHeader.get(4),friday);
listDataChild.put(listDataHeader.get(5),saturday);
listDataChild.put(listDataHeader.get(6),sunday);
}
public void OnClick(View view) {
Intent i = new Intent(this, Add_Activity.class);
startActivityForResult(i, 1);
}
private void Renew() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
int[] x = new int[10001];
x = dbManager.get_result(1);
// Adding child data
listDataHeader.add("Monday");
listDataHeader.add("Tuesday");
listDataHeader.add("Wednesday");
listDataHeader.add("Thursday");
listDataHeader.add("Friday");
listDataHeader.add("Saturday");
listDataHeader.add("Sunday");
String meow;
// Adding child data
List<String> monday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);monday.add(meow);}
x = dbManager.get_result(2);
List<String> tuesday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);tuesday.add(meow);}
x = dbManager.get_result(3);
List<String> wednsday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);wednsday.add(meow);}
x = dbManager.get_result(4);
List<String> thursday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);thursday.add(meow);}
x = dbManager.get_result(5);
List<String> friday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);friday.add(meow);}
x = dbManager.get_result(6);
List<String> saturday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);saturday.add(meow);}
x = dbManager.get_result(6);
List<String> sunday = new ArrayList<String>();
for (int i =0;i<x[10000];i++)
if(x[i]==1){meow=dbHandler.say_name(i+1);sunday.add(meow);}
listDataChild.put(listDataHeader.get(0), monday); // Header, Child data
listDataChild.put(listDataHeader.get(1), tuesday);
listDataChild.put(listDataHeader.get(2), wednsday);
listDataChild.put(listDataHeader.get(3),thursday);
listDataChild.put(listDataHeader.get(4),friday);
listDataChild.put(listDataHeader.get(5),saturday);
listDataChild.put(listDataHeader.get(6),sunday);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent meow) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
Data data = new Data ();
data.set_description(meow.getStringExtra("description"));
data.set_activityname(meow.getStringExtra("name"));
dbHandler.addProducts(data);
Days days1 = new Days();
int [] array = new int[7];
array = meow.getIntArrayExtra("array");
days1.set_monday(array[0]);
days1.set_tuesday(array[1]);
days1.set_wednesday(array[2]);
days1.set_thursday(array[3]);
days1.set_friday(array[4]);
days1.set_saturday(array[5]);
days1.set_sunday(array[6]);
dbManager.addActivity(days1);
listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
listAdapter.remove_shit();expListView.notifyAll();
prepareListData();
expListView.notifyAll();
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult
}
package com.thehuntestshadow.laken;
/**
* Created by User1 on 10/23/2016.
*/
import java.util.HashMap;
import java.util.List;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;
public class ExpandableListAdapter extends BaseExpandableListAdapter {
private Context _context;
private List<String> _listDataHeader; // header titles
// child data in format of header title, child title
private HashMap<String, List<String>> _listDataChild;
public ExpandableListAdapter(Context context, List<String> listDataHeader,
HashMap<String, List<String>> listChildData) {
this._context = context;
this._listDataHeader = listDataHeader;
this._listDataChild = listChildData;
}
@Override
public Object getChild(int groupPosition, int childPosititon) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.get(childPosititon);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_item, null);
}
TextView txtListChild = (TextView) convertView
.findViewById(R.id.lblListItem);
txtListChild.setText(childText);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
}
@Override
public Object getGroup(int groupPosition) {
return this._listDataHeader.get(groupPosition);
}
@Override
public int getGroupCount() {
return this._listDataHeader.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_group, null);
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public void remove_shit ()
{
_listDataChild.clear();
}
}
11/06 11:24:33: Launching app
$ adb push /Users/TheHuntestShadow/Desktop/Alpha/app/build/outputs/apk/app-debug.apk /data/local/tmp/com.thehuntestshadow.laken
$ adb shell pm install -r "/data/local/tmp/com.thehuntestshadow.laken"
pkg: /data/local/tmp/com.thehuntestshadow.laken
Success
$ adb shell am start -n "com.thehuntestshadow.laken/com.thehuntestshadow.laken.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Waiting for process to come online
Connected to process 13316 on device samsung-nexus_10-R32D100YVGD
Waiting for process to come online
Waiting for process to come online
Waiting for process to come online
Application terminated.
--------- beginning of crash
11-06 11:32:38.972 13676-13676/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.thehuntestshadow.laken, PID: 13676
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { cmp=com.thehuntestshadow.laken/.MainActivity (has extras) }} to activity {com.thehuntestshadow.laken/com.thehuntestshadow.laken.MainActivity}: java.lang.IllegalMonitorStateException: object not locked by thread before notify()
at android.app.ActivityThread.deliverResults(ActivityThread.java:3574)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3617)
at android.app.ActivityThread.access$1300(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1352)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.IllegalMonitorStateException: object not locked by thread before notify()
at java.lang.Object.notifyAll(Native Method)
at com.thehuntestshadow.laken.MainActivity.onActivityResult(MainActivity.java:283)
at android.app.Activity.dispatchActivityResult(Activity.java:6192)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3570)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3617)
at android.app.ActivityThread.access$1300(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1352)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
11-06 11:32:38.975 412-772/? W/ActivityManager: Force finishing activity 1 com.thehuntestshadow.laken/.MainActivity
11-06 11:32:39.028 412-15206/? I/OpenGLRenderer: Initialized EGL, version 1.4
11-06 11:32:39.032 412-15206/? D/mali_winsys: new_window_surface returns 0x3000
11-06 11:32:39.063 412-15206/? D/mali_winsys: new_window_surface returns 0x3000
11-06 11:32:39.483 412-433/? W/ActivityManager: Activity pause timeout for ActivityRecord{2aaea51a u0 com.thehuntestshadow.laken/.MainActivity t420 f}
11-06 11:32:39.546 12963-12980/? D/mali_winsys: new_window_surface returns 0x3000
11-06 11:32:40.497 523-523/? W/ResourceType: No package identifier when getting value for resource number 0x00000000
11-06 11:32:40.498 523-523/? W/PackageManager: Failure retrieving resources for com.android.settings: Resource ID #0x0
11-06 11:32:42.486 13676-13676/? I/Process: Sending signal. PID: 13676 SIG: 9
11-06 11:32:42.552 412-821/? I/WindowState: WIN DEATH: Window{1f76342a u0 com.thehuntestshadow.laken/com.thehuntestshadow.laken.Add_Activity}
11-06 11:32:42.558 412-2395/? I/WindowState: WIN DEATH: Window{262b75b3 u0 com.thehuntestshadow.laken/com.thehuntestshadow.laken.MainActivity}
11-06 11:32:42.620 412-425/? I/ActivityManager: Process com.thehuntestshadow.laken (pid 13676) has died
11-06 11:32:47.760 26617-27417/? I/ClearcutLoggerManager: flushAndDisconnect()
最佳答案
更新 _listDataHeader
和 _listDataChild
后,您应该在适配器上调用 notifyDataSetChanged()
。这样它就知道重新加载其 View 。
关于java - 对象未锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40493461/
我找到了 this excellent question and answer它以 x/y(加上 center x/y 和 degrees/radians)开始并计算旋转- 到 x'/y'。这个计算很
全部: 我已经创建了一个 Windows 窗体和一个按钮。在另一个线程中,我试图更改按钮的文本,但它崩溃了;但是如果我尝试更改按钮的颜色,它肯定会成功。我认为如果您更改任何 Windows 窗体控件属
本网站的另一个问题已证实,C 中没有缩写的字面后缀,并且可以执行以下操作: short Number = (short)1; 但是转换它和不这样做有什么区别: short Number = 1; 您使
我有下表: ID (int) EMAIL (varchar(50)) CAMPAIGNID (int) isSubscribe (bit) isActionByUser (bit) 此表存储了用户对事
也就是说,无需触发Javascript事件即可改变的属性,如何保留我手动选中或取消选中的复选框的状态,然后复制到另一个地方? 运行下面的代码片段并选中或取消选中其中的一些,然后点击“复制”: $('#
我在网上找到的所有关于递增指针导致段错误的示例都涉及指针的取消引用 - 如果我只想递增它(例如在 for 循环的末尾)并且我不在乎它是否最终进入无效内存,因为我不会再使用它。例如,在这个程序中,每次迭
我有一个 Spring MVC REST 服务,它使用 XStream 将消息与 XML 相互转换。 有什么方法可以将请求和响应中的 xml(即正文)打印到普通的 log4j 记录器? 在 Contr
做我的任务有一个很大的挑战,那就是做相互依赖的任务我在这张照片中说的。假设我们有两个任务 A 和 B,执行子任务 A1、A2 和 B1、B2,假设任务 B 依赖于 A。 要理想地执行任务 B,您应该执
通过阅读该网站上的几个答案,我了解到 CoInitialize(Ex) should be called by the creator of a thread 。然后,在该线程中运行的任何代码都可以使
这个问题已经困扰我一段时间了。我以前从未真正使用过 ListViews,也没有使用过 FirebaseListAdapters。我想做的就是通过显示 id 和用户位置来启动列表的基础,但由于某种原因,
我很难解释这两个(看似简单)句子的含义: “受检异常由编译器在编译时检查” 这是什么意思?编译器检查是否捕获了所有已检查的异常(在代码中抛出)? “未经检查的异常在运行时检查,而不是编译时” 这句话中
我有一个包含排除子字符串的文本文件,我想迭代该文件以检查并返回不带排除子字符串的输入项。 这里我使用 python 2.4,因此下面的代码可以实现此目的,因为 with open 和 any 不起作用
Spring 的缓存框架能否了解请求上下文的身份验证状态,或者更容易推出自己的缓存解决方案? 最佳答案 尽管我发现这个用例 super 奇怪,但您可以为几乎任何与 SpEL 配合使用的内容设置缓存条件
我有以下函数模板: template HeldAs* duplicate(MostDerived *original, HeldAs *held) { // error checking omi
如果我的应用程序具有设备管理员/设备所有者权限(未获得 root 权限),我如何才能从我的应用程序中终止(或阻止启动)另一个应用程序? 最佳答案 设备所有者可以阻止应用程序: DevicePolicy
非常简单的问题,但我似乎无法让它正常工作。 我有一个组件,其中有一些 XSLT(用于导航)。它通过 XSLT TBB 使用 XSLT Mediator 发布。 发布后
我正在将一个对象拖动到一个可拖放的对象内,该对象也是可拖动的。放置对象后,它会嵌套在可放置对象内。同样,如果我将对象拖到可放置的外部,它就不再嵌套。 但是,如果我经常拖入和拖出可放置对象,则可拖动对象
我正在尝试为按钮和弹出窗口等多个指令实现“取消选择”功能。也就是说,我希望当用户单击不属于指令模板一部分的元素时触发我的函数。目前,我正在使用以下 JQuery 代码: $('body').click
我从 this question 得到了下面的代码,该脚本用于在 Google tasks 上更改 iframe[src="about:blank"] 内的 CSS使用 Chrome 扩展 Tempe
我有一些 @Mock 对象,但没有指定在该对象上调用方法的返回值。该方法返回 int (不是 Integer)。我很惊讶地发现 Mockito 没有抛出 NPE 并返回 0。这是预期的行为吗? 例如:
我是一名优秀的程序员,十分优秀!