我将游戏中的聊天模块放入应用程序中.我将收到的短信添加到LinearLayout视图中.我想将布局参数设置为TextView,但以下代码崩溃,错误消息让我感到困惑.
private void addChat(String chat, String when, Boolean mine) {
int leftMargin;
TextView tv = new TextView(this);
llview.addView(tv);
tv.setTextColor(Color.WHITE);
tv.setTextSize(2,25);
tv.setText(chat);
if (mine) {
leftMargin = 5;
tv.setBackgroundColor(0x7C5B77);
}
else {
leftMargin = 50;
tv.setBackgroundColor(0x778F6E);
}
final ViewGroup.MarginLayoutParams lpt =(MarginLayoutParams)tv.getLayoutParams();
lpt.setMargins(leftMargin,lpt.topMargin,lpt.rightMargin,lpt.bottomMargin);
tv.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
}
Run Code Online (Sandbox Code Playgroud)
当它运行时,所有上述代码都会执行,但它会在android运行时崩溃:
03-13 14:15:38.513: E/AndroidRuntime(12985): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams
Run Code Online (Sandbox Code Playgroud)
并且通过调试器,它实际上处理所有这些行
但是当尝试使用同样神秘的异常详细消息进行渲染时barfs:
android.view.ViewGroup$LayoutParams
Run Code Online (Sandbox Code Playgroud)
那么,到达这个州做了什么?我应该做什么来交替左/右缩进消息?
我需要显示多个文件(每个图像,音乐或视频2个或更多,但只有一个类型).给定一系列缩略图或文件名,用户应该能够选择chekbox并预览选择.如果用户选择多个图像,我希望能够仅显示所选择的图像.如果他选择多个mp3文件,我希望能够只播放那些歌曲.
如果用户只选择一个文件,那很容易做到:
Intent i = new Intent(Intent.ACTION_VIEW);
if (someType == IMAGE) {
i.setDataAndType(Uri.fromFile(imageFile),"image/*");
}
else
if (sometype == VIDEO) {
i.setDataAndType(Uri.fromFile(videoFile),"video/mp4");
}
else if (someType == MUSIC) {
i.setDataAndType(Uri.fromFile(musicFile),"audio/mpeg");
}
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
但是,如果用户选择一种类型中的两种或更多种类,我如何构建使用用户可能安装的任何图像/音频/视频应用程序的意图?我不想写自定义播放器/观众,因为我知道现有的应用可以做到这一点.
我试图模仿名为"AllShare Play"的云应用程序的功能(https://www.samsung.com/us/2012-allshare-play/).这个应用程序正是我需要在我的应用程序中执行的操作 - 允许用户"预览"多个文件并仅使用标准的"图库"应用程序用于图像,标准音乐应用程序用于歌曲等.在每种情况下,只选择文件使用每个Android设备加载的标准应用程序显示或播放,因此我知道可以不编写查看器或播放器.
任何人有任何想法如何通过Intent.ACTION_VIEW发送多个文件到外部应用程序?
请帮助sqlite n00b.
我有两张桌子
"CREATE TABLE students (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"studentname TEXT not null," +
"studentpic BLOB," +
"comment TEXT);";
Run Code Online (Sandbox Code Playgroud)
和
"CREATE TABLE classes (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT," +
"classname TEXT," +
"attend INTEGER," +
"late INTEGER," +
"dtime TEXT," +
"student INTEGER REFERENCES students(_id) on
UPDATE CASCADE);";
Run Code Online (Sandbox Code Playgroud)
我想在特定的类中显示学生列表,但我的classes表仅通过student-id引用它们,如何构造查询以将"classes"表的所有字段拉回单个游标但使用实际名称从'学生'表?
提前谢谢了
很难让多个Y轴在Android上使用achartengine显示在图表上.我试图复制在"多温度图表"演示中所做的工作:http://code.google.com/p/achartengine/source/browse/trunk/achartengine/demo/org/achartengine/chartdemo/demo/ chart/MultipleTemperatureChart.java但它不会在右侧显示Y轴,也不会显示我想要显示的Yaxis标签.
任何想法我的代码可能做错了什么:
mCurrentCostSeries = new XYSeries(costTitle);
mCurrentEffSeries = new XYSeries(effTitle);
mDataset.addSeries(mCurrentCostSeries);
mDataset.addSeries(mCurrentEffSeries);
int[] colors = new int[] { Color.RED, Color.YELLOW };
PointStyle[] styles = new PointStyle[] { PointStyle.POINT, PointStyle.DIAMOND };
mRenderer = new XYMultipleSeriesRenderer(2);
setRenderer(mRenderer, colors, styles);
int length = mRenderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
XYSeriesRenderer r = (XYSeriesRenderer) mRenderer.getSeriesRendererAt(i);
r.setLineWidth(3f);
}
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.argb(100, 50, 50, 50));
mRenderer.setAxesColor(Color.LTGRAY);
mRenderer.setZoomButtonsVisible(true);
mRenderer.setPointSize(10);
mRenderer.setChartTitle("Fuel Efficiency and Cost");
mRenderer.setShowGrid(true);
mRenderer.setXLabelsAlign(Align.RIGHT);
mRenderer.setYLabelsAlign(Align.RIGHT);
mRenderer.setYTitle(cunits,0);
mRenderer.setLabelsColor(Color.WHITE); …Run Code Online (Sandbox Code Playgroud) Jetpack Compose 和 Coil 的新手,但 Android 或 Java/Kotlin 的新手。
我无法显示 URL 中的图像...缺少一些基本内容?
我从( https://developer.android.com/jetpack/compose/tutorial )获取了 Google/Android 教程,并将其添加到 gradle 脚本中:
implementation("io.coil-kt:coil:2.0.0-rc03")
implementation("io.coil-kt:coil-compose:2.0.0-rc03")
Run Code Online (Sandbox Code Playgroud)
我在消息中添加了一个字符串 url:
data class Message(val author: String, val url: String, val body: String)
Run Code Online (Sandbox Code Playgroud)
并将 URL 添加到示例数据中:
Message(
"Colleague",
"http://martypants.us/images/person4.png",
"Searching for alternatives to XML layouts..."
)
Run Code Online (Sandbox Code Playgroud)
在我的 @Composable 中,我将其更改为使用 AsyncImage 来加载 URL,而不是可绘制的
@Composable
fun MessageCard(msg: Message) {
Row {
AsyncImage(
model = ImageRequest.Builder(LocalContext.current)
.data(msg.url)
.build(),
placeholder = painterResource(R.drawable.ic_profile),
error = painterResource(R.drawable.ic_error),
contentDescription = stringResource(R.string.description),
contentScale = ContentScale.Fit,
modifier = …Run Code Online (Sandbox Code Playgroud) 我在泡菜.我住在韩国,教英语,但我正在开发一个Android应用程序.我想测试我的三星Galaxy S.无法找到它的adb驱动程序,因为我能找到的唯一驱动程序是美国版本的设备.有人有这个设备的驱动程序详细信息
我想我正在做一切正确的事情,首先创建一个文件夹,我可以稍后在我的应用程序中写入,但它似乎没有工作.关于我如何失败的任何线索?
它正确地尝试创建/ mnt/sdcard/gradebook
我的清单中有use-permission android:name ="android.permission.WRITE_EXTERNAL_STORAGE".我正在运行一个真实设备(三星Galaxy S),而且我没有使用SD卡作为存储,而它连接到我的电脑.
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
// We can only read the media
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
Toast.makeText(this,"This Application needs a writable external storage (sdcard).",Toast.LENGTH_SHORT).show();
finish();
} else {
// Something else is wrong. It may be one of many other states, but all …Run Code Online (Sandbox Code Playgroud) 我创建了一个自定义日历视图组,除其他元素外,它还包含一个允许用户选择年份的微调器。此自定义视图将在多个应用程序中使用,因此创建像 AAR 这样的可重用的东西是有意义的。我需要做一些特定的样式,这样无论我将其部署在哪里,视图看起来都是一样的。
我的自定义视图组查找并呈现视图组的主布局。但是,当用户点击年份微调器并想要更改年份时,适配器无法找到下拉列表布局的文本 ID。我已经检查了我的 APK 中的合并清单,并且可以从我的 AAR 中看到布局和文本 ID,但它在点击时崩溃,并出现以下错误:
java.lang.RuntimeException: Failed to find view with ID us.martypants.mycustomviewgroup:id/current_year in item layout
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我使用 android 的布局(即 android.R.layout.simple_spiner_item 和 android.R.id.text1)而不是自定义布局和 textId,APK 可以找到资源,显示选择列表并设置结果 -虽然我需要的样式不存在。
package com.algtskr.algtskrcommon
class DropdownAgeSelectView (context: Context, attrs: AttributeSet): RelativeLayout(context, attrs),
AdapterView.OnItemSelectedListener {
private var mCounterColor = 0
private var mAge = 0
init {
LayoutInflater.from(context)
.inflate(R.layout.dropdown_ageselect_layout, this, true)
attrs.let {
val typedArray = context.obtainStyledAttributes(it,
R.styleable.DropdownAgeSelectView, 0, 0)
mCounterColor = typedArray.getColor(R.styleable.DropdownAgeSelectView_counter_color, 0)
mAge = typedArray.getInteger(R.styleable.DropdownAgeSelectView_initial_value, 0)
typedArray.recycle()
}
val adapter …Run Code Online (Sandbox Code Playgroud) 我有一个扩展simplecursoradapter的适配器.新视图应该从数据库中获取光标和图像,使用几个复选框填充列表.由于某种原因我似乎无法看到,我的getView甚至没有被调用.我在getView中有一个断点,它永远不会到达那里,列表只显示为空.任何人都可以通过看看我做错了什么
public class TakeStudentAttendance extends ListActivity {
private gradeBookDbAdapter mDbHelper;
private Long mRowId;
private TextView mNameText;
private String classname;
private Boolean new_attendance = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Cursor stud;
mDbHelper = new gradeBookDbAdapter(this);
mDbHelper.open();
mRowId = (savedInstanceState == null) ? null
: (Long) savedInstanceState
.getSerializable(gradeBookDbAdapter.KEY_ROWID);
if (mRowId == null) {
Bundle extras = getIntent().getExtras();
mRowId = extras != null ? extras
.getLong(gradeBookDbAdapter.KEY_ROWID) : null;
}
// pull in class data
stud = mDbHelper.fetchClass(mRowId);
startManagingCursor(stud);
classname = …Run Code Online (Sandbox Code Playgroud) 如何将活动返回到另一个活动而不是名为startactivity的活动?
我有一个游戏,用户可以选择从现有游戏列表中进行游戏或选择开始新游戏.当开始一个新游戏时,如果游戏列表变为活动状态而不是回到活动来创建新游戏,那么当用户完成游戏时我会喜欢它.
在各种活动中,
selectGames
playGame --- return to selectGames
or
createNewGame --- playGame --- return to createNewGame --- return to selectGames
Run Code Online (Sandbox Code Playgroud)
selectGames
playGame --- return to selectGames
or
createNewGame --- playGame --- return to selectGames
Run Code Online (Sandbox Code Playgroud)
有没有办法插入一个或多个意图,当从createNewGame开始一个活动时,用户可以完成或暂停游戏并返回selectGames?如果意图在堆栈上,我想从意图堆栈中删除createNewGame(这有意义吗?)