我正在用Java编写联系簿应用程序.联系人显示在使用Sorted TreeSet列表模型的JList上.
我添加了一个搜索字段,并为其添加了一个关键监听器.输入每个键后,列表模型的子集功能用于显示缩小的联系人集.我希望JList显示这个缩小的子集.
我正在考虑将SortedSet转换为Vector,然后使用JList的setListData方法来显示结果,但我知道这将是缓慢且低效的,并且当您使用密钥监听器时,这是一个更糟糕的想法.
所以我想问一下,解决这个问题的最有效方法是什么.
谢谢你的帮助.
我正在创建一个我添加到FrameLayout的自定义视图.当我初始化视图时,我得到一个NullPointerException.我究竟做错了什么.该视图的代码是:
public class DocumentCameraMask extends View {
private Context mContext;
public DocumentCameraMask(Context context) {
super(context);
this.mContext = context;
}
@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
Paint paint = new Paint();
paint.setColor(this.mContext.getResources().getColor(R.color.textColor));
paint.setStyle(Paint.Style.STROKE);
Rect cropRect = new Rect(0,0,800,600);
canvas.drawRect(cropRect, paint);
super.draw(canvas);
}
}
Run Code Online (Sandbox Code Playgroud)
cropRect大小将动态计算,这就是我需要创建此视图的原因.谢谢你的帮助.
logcat的
09-11 19:13:04.590:E/AndroidRuntime(4235):FATAL EXCEPTION:main 09-11 19:13:04.590:E/AndroidRuntime(4235):java.lang.RuntimeException:无法启动活动DocumentCameraActivity}:java .lang.NullPointerException 09-11 19:13:04.590:E/AndroidRuntime(4235):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)09-11 19:13:04.590:E/AndroidRuntime(4235) :在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211)09-11 19:13:04.590:E/AndroidRuntime(4235):在android.app.ActivityThread.access $ 600(ActivityThread.java:149)09- 11 19:13:04.590:E/AndroidRuntime(4235):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1300)09-11 19:13:04.590:E/AndroidRuntime(4235):在android. os.Handler.dispatchMessage(Handler.java:99)09-11 19:13:04.590:E/AndroidRuntime(4235):在android.os.Looper.loop(Looper.java:153)09-11 19:13:04.590:E/AndroidRuntime(4235):在android.app.ActivityThread.main(ActivityThread.java) :4987)09-11 19:13:04.590:E/AndroidRuntime(4235):at java.lang.reflect.Method.invokeNative(Native Method)09-11 19:13:04.590:E/AndroidRuntime(4235):at java.lang.reflect.Method.invoke(Method.java:511)09-11 19:13:04.590:E/AndroidRuntime(4235):at com.android.internal.os.ZygoteInit $ …
我一直关注Google App Engine的Go教程.
根据教程,我应该创建一个根项目目录,所有与项目相关的源文件都应该进入这个目录.因此,我的工作区看起来像这样:
/MyProject
/router
router.go
/items
items.go
Run Code Online (Sandbox Code Playgroud)
当我尝试在router.go中引用items.go时:
router.go
import(
"items"
)
func itemsHandler(writer http.ResponseWriter, request * http.Request){
anItem := items.Item{Id: 245,Name: "Chocolate",Price: 1.50};
}
Run Code Online (Sandbox Code Playgroud)
该应用程序无法编译,因为items is undefined现在我对如何组织Google App Engine上的Go项目非常困惑.我想知道的是
我的项目目录应该位于Go SDK的gopath目录中,还是位于任何地方?教程没有说清楚.
Go App Engine项目的结构是什么,如何导入源文件?
我正在使用AsyncTask从文件中读取数据.我在运行应用程序时遇到上述错误.
错误消息是:
03-29 20:06:08.445:E/AndroidRuntime(13191):java.lang.ExceptionInInitializerError 03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app.BouncingBall.HighScore.loadFromFile( HighScore.java:81)03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app.BouncingBall.HighScore.(HighScore.java:24)03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app.BouncingBall.BouncingBallActivity $ BouncingBallView.init(BouncingBallActivity.java:185)03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app. BouncingBall.BouncingBallActivity $ BouncingBallView.run(BouncingBallActivity.java:173)03-29 20:06:08.445:E/AndroidRuntime(13191):at java.lang.Thread.run(Thread.java:1019)03-29 20: 06:08.445:E/AndroidRuntime(13191):引起:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序03-29 20:06:08.445:E/AndroidRuntime(13191 ):在android.os.Handler.(Handler.java:121)
代码
private void loadFromFile()
{
new AsyncDataStorage().execute(FILENAME);
}
class AsyncDataStorage extends AsyncTask<String, Integer, Boolean> {
protected Boolean doInBackground(String... args) {
try {
FileInputStream fis = context.openFileInput(FILENAME);
byte[] raw = new byte[fis.available()];
String rawData=null;
while(fis.read()!=-1)
{
rawData = new String(raw);
}
return (processRawData(rawData));
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) { …Run Code Online (Sandbox Code Playgroud) 我的iOS应用程序从REST服务获取JSON.JSON包含状态代码和数据.如果代码是200,则数据是请求的对象,否则数据是错误描述.
JSON可用于构建多种对象,因此我创建了一个工厂类,它在构造函数中获取json数据,实例方法根据需要将数据解析为不同的对象.
我的问题是,如果状态代码不是200,可以在构造函数中包含NSError**作为参数.方法头看起来像这样:
-(instancetype) initWithData:(NSData *) json error: (NSError **) error;
Run Code Online (Sandbox Code Playgroud) 我有一个UITableViewCell固定在底部的描述标签,如下所示:

点击描述标签可在和numberOfLines之间切换:30
- (void)awakeFromNib {
[super awakeFromNib];
[self setupView];
}
-(void) setupView
{
UITapGestureRecognizer * gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleNumberOfLines)];
self.jobDescriptionLabel.userInteractionEnabled = YES;
[self.jobDescriptionLabel addGestureRecognizer:gestureRecognizer];
}
- (void) toggleNumberOfLines {
if(self.jobDescriptionLabel.numberOfLines != 0){
self.jobDescriptionLabel.numberOfLines = 0;
}else{
self.jobDescriptionLabel.numberOfLines = kNumberOfLines;
}
[self.jobDescriptionLabel sizeToFit];
[self layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)
当我点击标签时,行数确实发生了变化,但单元格不会扩展以容纳新的行数。我该如何解决?
折叠(默认):
扩展:
uitableview ios ios-autolayout uitableviewautomaticdimension
当我尝试使用以下命令运行我的单声道应用程序时:
mono SimpleBrowser.exe
Run Code Online (Sandbox Code Playgroud)
我的Mac上出现以下错误:
Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for Gtk.Application ---> System.DllNotFoundException: glibsharpglue-2
at (wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported ()
at GLib.Thread.get_Supported () [0x00000] in <filename unknown>:0
at Gtk.Application..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at SimpleBrowser.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 [ERROR]
FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Gtk.Application ---> System.DllNotFoundException: glibsharpglue-2
at (wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported ()
at GLib.Thread.get_Supported …Run Code Online (Sandbox Code Playgroud) 我是Go的新手,我正在制作一个小型抽认卡应用程序.我的包结构是这样的
VocabHelper
|
-|src
--|com
---|wks
----|card
------Card.go
------Deck.go
----|main
------main.go
Run Code Online (Sandbox Code Playgroud)
甲板和卡是两个单独的类,但它们在同一个包中:
Card.go
package card
type Card struct{
Question string
Answer string
}
Run Code Online (Sandbox Code Playgroud)
Deck.go
package card
import (
"math/rand"
)
type Deck struct{
Cards []card.Card
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译项目时,编译器说undefined:card即使卡与卡片在同一个包中.我怎样才能在甲板课上使用卡类?
我有一个N个整数的数组,每个都有5到20之间的不同值.我想从它们中形成尽可能多的组,使得它们的总和是一个整数值D.
形成的组数,组的数量或阵列的每个元素必须使用的数量没有限制; 我们必须创建尽可能多的组,只有一组足够.
这是我的极限:
5 <= V:项目的值<= 20
5 <= N:元素数量<= 10000
20 <= D:单个组的数字总和<= 2000
例子
答:
数组:{5,7,7,6,6,8,8,10,11,12}
D:40
公认的解决方案之一:
[[5,7,8,8,12],[7, 6,6,10,11]
B:
数组:{5,6,6,7,7,10}
D:20
公认的解决方案之一:
[[6,7,7]]
建议的算法最好应该是psicocode或基于C语言,Java或Phyton.如果接受的答案不是Java,那么在接受解决方案后,它将被移植到Java中并在此处共享.
谢谢.
编辑:似乎无论选择哪种方法,如果N是非常大的数字,将花费大量时间来计算,我将尝试将N的最大值限制为50-100倍,然后测试更大的情况.
编辑2:很多很棒的解决方案,但是我需要花一些时间来检查它.