我正在尝试创建一个向用户显示一些数据的活动.数据可以分为"单词",每个单词都是一个小部件,"单词"序列将形成数据("句子"?),包含单词的ViewGroup小部件.由于"句子"中所有"单词"所需的空间将超过显示器上的可用水平空间,我想像正常的文本一样包装这些"句子".
以下代码:
public class WrapTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout l = new LinearLayout(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams mlp = new LinearLayout.LayoutParams(
new ViewGroup.MarginLayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
mlp.setMargins(0, 0, 2, 0);
for (int i = 0; i < 10; i++) {
TextView t = new TextView(this);
t.setText("Hello");
t.setBackgroundColor(Color.RED);
t.setSingleLine(true);
l.addView(t, mlp);
}
setContentView(l, lp);
}
}
Run Code Online (Sandbox Code Playgroud)
产生类似左图的东西,但我想要一个布局呈现相同的小部件,如右图所示.
是否有布局或布局和参数的组合,还是我必须为此实现自己的ViewGroup?
我试图让一个游戏项目与平台无关,所以我把它分成三个项目,从低级别到顶级的android特定级别,如:引擎,游戏,安卓游戏.
错误中涉及的类/接口是:
(低级)引擎项目定义了这个接口:
com.myteam.engine.IGame
Run Code Online (Sandbox Code Playgroud)(中级)平台独立游戏项目定义了这些类:
com.myteam.myproject.Game
com.myteam.myproject.MyProject (derived from com.myteam.myproject.Game)
Run Code Online (Sandbox Code Playgroud)(顶级)android项目实现活动等:
com.myteam.myproject.android.MyAndroidActivity (using com.myteam.myproject.MyProject)
Run Code Online (Sandbox Code Playgroud)所有编译良好并在Windows下完美运行(使用前两个在3级上的另一个Windows项目).
但是当使用ADT运行时,它会在Activity启动时在运行时失败.Android应用程序基本上只显示一个带有"NoClassDefFoundError com.myteam.myproject.MyProject"异常的调用堆栈.
在LogCat输出显示的加载/解析时,异常似乎是由它的超类(或超类'接口)引起的:
12-20 19:51:51.897: D/ddm-heap(218): Got feature list request
12-20 19:51:52.207: I/dalvikvm(218): Failed resolving Lcom/myteam/myproject/Game; interface 18 'Lcom/myteam/engine/IGame;'
12-20 19:51:52.217: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/Game;' failed
12-20 19:51:52.227: W/dalvikvm(218): Unable to resolve superclass of Lcom/myteam/myproject/MyProject; (52)
12-20 19:51:52.227: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/MyProject;' failed
12-20 19:51:52.227: E/dalvikvm(218): Could not find class 'com.myteam.myproject.MyProject', referenced from method com.myteam.myproject.android.MyAndroidActivity.onCreate
12-20 19:51:52.227: W/dalvikvm(218): VFY: unable to …
Run Code Online (Sandbox Code Playgroud) 自从最新的ADT更新到第17版以来,我似乎遇到了一个棘手的问题.
我做了一个简单的应用程序来说明我的问题,我不知道我做错了什么.我的应用程序的主要活动是继承自支持包中的FragmentActivity,并且某种程度上应用程序在启动时崩溃.
为了说明,我做了一个示例项目.
首先,这里是我的虚拟类DummyProjectActivity的代码,非常简单:
public class DummyProjectActivity extends FragmentActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,有清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="be.emich.labs"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".DummyProjectActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
.jar文件在项目中正确导入,我得到了这个堆栈跟踪:
E/AndroidRuntime(11509): FATAL EXCEPTION: main
E/AndroidRuntime(11509): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{be.emich.labs/be.emich.labs.DummyProjectActivity}: java.lang.ClassNotFoundException: be.emich.labs.DummyProjectActivity
E/AndroidRuntime(11509): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
E/AndroidRuntime(11509): at …
Run Code Online (Sandbox Code Playgroud) 我有一个自定义视图,它位于我在我的应用程序中引用的库中.在库中,我声明了一个样式,视图使用了它.在我的应用程序中,我正在使用库中的自定义视图:
<nefarious.library.myappname.views.DragDropList
xmlns:ddl="http://schemas.android.com/apk/res/nefarious.library.myappname"
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:choiceMode="singleChoice"
android:clickable="true"
android:longClickable="true"
android:focusable="true"
android:hapticFeedbackEnabled="true"
android:cacheColorHint="#00000000"
ddl:normalHeight="@dimen/list_item_height"
ddl:doubleHeight="@dimen/list_item_height_doubled"
ddl:grabber="@id/grabber"
ddl:grabberPadding="30dip"
ddl:dragndropBackground="@color/moola_light" />
Run Code Online (Sandbox Code Playgroud)
Eclipse似乎在查找样式时遇到问题.Eclipse告诉我它找不到每个可设置属性的资源标识符.
如何让我的应用程序从库中查看样式?
我的问题正是这个问题:
这似乎没有得到回答.