我需要获得行和列的2D数组的长度.我已成功完成此操作,使用以下代码:
public class MyClass {
public static void main(String args[])
{
int[][] test;
test = new int[5][10];
int row = test.length;
int col = test[0].length;
System.out.println(row);
System.out.println(col);
}
}
Run Code Online (Sandbox Code Playgroud)
按预期打印5,10.
现在来看看这一行:
int col = test[0].length;
Run Code Online (Sandbox Code Playgroud)
请注意,我实际上必须引用一个特定的行,以获得列长度.对我来说,这看起来非常难看.另外,如果数组定义为:
test = new int[0][10];
Run Code Online (Sandbox Code Playgroud)
然后在尝试获取长度时代码将失败.是否有不同(更聪明)的方式来做到这一点?
是否有内置的方法来检查资源是否存在,或者我是否继续执行以下操作:
boolean result;
int test = mContext.getResources().getIdentifier("my_resource_name", "drawable", mContext.getPackageName());
result = test != 0;
Run Code Online (Sandbox Code Playgroud) 因此我的一个应用程序今天被拒绝从亚马逊应用程序商店.原因是因为在我的应用程序中,我链接到Android市场上的应用程序的付费版本.令人失望,但无论如何,我想每个人都希望他们的削减......
所以现在我不得不修改应用程序以将Android市场链接更改为亚马逊应用商店链接.这并不是什么大不了的事情,除非现在如果我这样做,当我想将更新的版本上传回Android市场时,我仍然存在差异.毕竟,如果他们从Android市场购买应用程序,将某人链接到亚马逊应用程序商店会相当愚蠢.
现在我们都知道,这是一个支持/管理同一个应用程序的多个版本的痛苦.因此,我的问题变成了如何同时链接到两者?有没有办法告诉应用程序从哪里下载,所以我可以将两个链接编码到应用程序中,从而将用户自动指向其中一个?其次,是否反对亚马逊TOS给用户一个选择(比如我弹出一个对话框并询问用户从哪里下载)?
谢谢大家.
编辑:直接从亚马逊客户服务"Re:链接到两个市场"(我希望审批流程与这些人一样快):
目前,我们需要任何链接指向仅针对市场链接的Amazon Appstore.允许链接到您的网站,而不是其他市场.
当从应用程序中指向其他应用程序(包括向上销售)时,必须从Amazon Appstore完成购买.
我试图膨胀一个内部类视图并获得"错误膨胀类"问题.我引用了这篇文章很有帮助,但我仍然迷失了为什么我不能让这个工作.
这是代码摘录,我的XML和logcat.
编辑:另外我注意到当我明确拥有它时,logcat为"CupcakeMessageView(Context,AttributeSet)"声明了"没有这样的方法异常".
谢谢大家!
public class CupcakeMessage extends Activity {
class CupcakeMessageView extends View {
private static final int TEXT_SIZE = 12;
private static final int X_OFFSET = 15;
private Paint mPaint;
public CupcakeMessageView(Context context) {
super(context);
}
public CupcakeMessageView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
...
}
more class stuff...
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cupcake_message);
...
}
}
Run Code Online (Sandbox Code Playgroud)
这是XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 假设我有一个Hello World单个Activity应用程序.我启动这个应用程序.
在每种情况下调用哪些方法:
一旦用户通过应用程序图标再次启动应用程序,就会调用哪些方法(假设操作系统没有"其他应用程序需要内存条件"):
谢谢大家.
编辑:额外信用:用户如何在onPause不调用的情况下调用onStop?
如何从内置方法getPixels为Bitmap解释返回的数组?
这是我的代码:
public void foo() {
int[] pixels;
Bitmap bitmapFoo = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.test2);
int height = bitmapFoo.getHeight();
int width = bitmapFoo.getWidth();
pixels = new int[height * width];
bitmapFoo.getPixels(pixels, 0, width, 1, 1, width - 1, height - 1);
}
Run Code Online (Sandbox Code Playgroud)
返回的数组"像素"的值从-988,602,635到1,242,635,509,这只是我在一个简单的PNG文件上的几种颜色.如何解释从此方法返回的数字?
编辑:我意识到这个整数代表一种颜色.我只是不明白如何将这个单个整数解释为构成颜色的RBG和alpha值.
谢谢.
PS.如果你问自己,"他想做什么?" 我试图找出一种动态修改位图颜色的方法.
我正在尝试使用以下函数将dips转换为像素.我尝试过低,中,高密度仿真器,无论我使用何种仿真器,像素值都保持与传递给函数的倾角值相同的值.
private int ConvertDips(float dips) {
int pixels = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float) dips, getResources().getDisplayMetrics());
return pixels;
}
Run Code Online (Sandbox Code Playgroud)
我到底做错了什么?
以下是我在Android应用程序中遇到的错误的链接.我认为一个简单的视频可以更直接,更容易理解,而不是试图通过一个巨大的文本墙解释它.
http://www.youtube.com/watch?v=9V3v854894g
我已经在这个问题上打了一针墙一天半了.我只发现它可以通过最近更改XML布局来解决,这对我来说完全没有意义.我不知道如何正确修复它,或者是一种解决问题的方法,因为我需要在我的应用程序中使用嵌套布局.
谢谢大家的帮助!
这是代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
public class Builder extends Activity {
private Spinner mCompSelect;
private Spinner mNameSelect;
private int[] mCompColorAsBuilt;
private int mComponent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.builder);
mCompColorAsBuilt = new int[3];
//Attach our objects
mCompSelect = (Spinner) findViewById(R.id.component);
mNameSelect = (Spinner) findViewById(R.id.component_name);
//Attach an adapter to the top spinner
ArrayAdapter<CharSequence> a = ArrayAdapter.createFromResource(this, …Run Code Online (Sandbox Code Playgroud) 我有一堂课,看起来像这样:
Public Class DataPoint
Private _data As Integer
Private _locInText As Integer
Private _searchValue As String
Property Data As Integer
Get
Return _data
End Get
Set(value As Integer)
_data = value
End Set
End Property
Property LocInText As Integer
Get
Return _locInText
End Get
Set(value As Integer)
_locInText = value
End Set
End Property
Property SearchValue As String
Get
Return _searchValue
End Get
Set(value As String)
_searchValue = value
End Set
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
然后,我使用该类创建另一个类。
Public Class PaintData
Public …Run Code Online (Sandbox Code Playgroud) 我想在我的应用程序中实现多点触控.在API版本5之前,多点触控支持无法使用.但是,我还希望我的应用程序向后兼容,直到API级别4.有没有办法解决这个问题,除了创建两个单独的.apk,我删除了4级版本的多点触控代码?
谢谢大家.