这是一个一般的JAVA问题.在android中,有一个接口Parcelable
:
这是官方文档中的一个示例:
public class MyParcelable implements Parcelable {
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
public static final Parcelable.Creator<MyParcelable> CREATOR
= new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
Run Code Online (Sandbox Code Playgroud)
我们需要实现2个功能describeContents()
和writeToParcel
.
(问题)
除了它们之外,我们还需要将Parcelable.Creator<T>
接口实现为名为CREATOR的静态字段.
一切都是直截了当的.现在我想创建一个具有Parcelable类类型的Generic Class:
public …
Run Code Online (Sandbox Code Playgroud) 我正在开发Android应用程序,我需要知道手机上使用的Google帐户的状态.我想为C2DM做这个,但我不想让用户再次登录他/她的谷歌电子邮件帐户,如果他们已经登录.有什么办法吗?
我已经知道热门获取Google帐户了..
Account[] accts = accountManager.getAccountsByType("com.google");
Account acct = accts[0];
System.out.println("Account:"+acct.name);
Run Code Online (Sandbox Code Playgroud)
但是如何检查状态(logged_out,logging_in或logged_in)?
谢谢.
我刚刚创建了课程VibratingTextView
.我打算创建一个完整的小部件库,所以我想以正确的方式做到这一点.
此视图的xml:
<sherif.android.textview.VibratingTextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:text="outToRight" >
</sherif.android.textview.VibratingTextView>
Run Code Online (Sandbox Code Playgroud)
注意它有android:orientation
和android:text
.它接受a TextView
和a 的属性LinearLayout
.班级本身extends LinearLayout
.
我的问题是在eclipse的xml编辑器中.当用户输入时android:
,eclipse的intellisense为用户提供了此命名空间中可用的选项.
在我的例子中,它给出了LinearLayout
so 的属性,例如,Text
并TextSize
没有出现.
有没有办法让它们出现(使用android
命名空间)?
如果没有,我应该用我定义的属性创建自己的命名空间吗?或者有没有办法导入android的属性并使其在sherif的属性中?
请记住,我正在使用传递的属性在我的类的构造函数中创建TextView.它工作正常,TextView的所有属性都正确设置.
由于我将创建许多其他小部件,我可能需要自己的命名空间,但最佳做法是什么?例如,我想创建alwaysVibrate
属性.它会是这样的sherif:alwaysVibrate="true"
.我希望我的库可以包含和eclipse以显示我的命名空间的属性:我使用通常的方式使用attr.xml
?
我有一个名为aTable的TableView.initialiseDTable()将第一行添加为RED背景
目标
防止标题行滚动(WORKING FINE)
保持标题行与每个TextView的宽度相同,这样可以感觉它是aTable(不工作)的子节点
学尝试
我的尝试是在scrollview之前创建一个tableview并填充aTable,然后提取标题行并将其作为此tableview的子项插入.
将代码添加到表格中的代码
public void initialiseDTable() {
LayoutInflater inflater = getLayoutInflater();
TableRow row = (TableRow) inflater.inflate(R.layout.table_row, dTable,
false);
View v = (View) inflater.inflate(R.layout.table_cell, row, false);
TextView A = (TextView) v.findViewById(R.id.table_cell_text);
A.setText(tag1);
row.addView(v);
v = (View) inflater.inflate(R.layout.table_cell, row, false);
A = (TextView) v.findViewById(R.id.table_cell_text);
A.setText(tag2);
row.addView(v);
v = (View) inflater.inflate(R.layout.table_cell, row, false);
A = (TextView) v.findViewById(R.id.table_cell_text);
A.setText(tag3);
row.addView(v);
v = (View) inflater.inflate(R.layout.table_cell, row, false);
A = (TextView) v.findViewById(R.id.table_cell_text);
A.setText(tag4);
row.addView(v);
if (this.showEST) { …
Run Code Online (Sandbox Code Playgroud) 我正在为Android和iOS构建PhoneGap应用程序.
我想知道哪一个是更好的数据库管理选择:HTML5的SQLite或Native数据库设备.
在本机使用的情况下,我需要构建一个用于交互的插件.
请根据性能和速度建议我更好的选择.
我有很多我同时工作的项目.
每次我构建并运行其中一个时,apk就像往常一样位于bin文件夹中.
如果我想将这个apk复制到项目之外的其他文件夹,我必须手动完成.
我创建了一个批处理文件,将我所有项目的apk文件复制到所需的位置.
有没有办法将bin文件夹的输出位置更改为项目之外的某个位置,或者更优选地在每次构建后运行批处理文件?
注意
我正在使用ADT与eclipse.我试图添加一个执行批处理文件的构建器.但是,运行批处理文件时,尚未生成apk文件.我尝试了构建器中所有选项的组合以及所有可能的构建器序列.
无论编程语言如何
我有一个客户服务器应用程序.
移动客户端 - http服务器
该应用程序将在几个手机上提供,不仅仅是android.
我想确保请求仅来自客户端的移动设备.
我该如何解决这个安全问题?
我提议 :
在移动应用上有一个硬编码的密钥:
每个请求都使用此密钥加密,并在服务器端解密.
如果这种方式有意义,那么对密钥进行硬编码是否安全?(反编译器可以获得密钥?该应用程序不仅可用于Android!)
额外信息:
每个用户都有一个用户ID /用户名...
问题(LogCat)
sqlite返回:错误代码= 1,msg =没有这样的表...
android.database.sqlite.SQLiteException:没有这样的表:....
码
public void onCreate(SQLiteDatabase db) {
Log.v("SQLAdapter","onCreate(SQLiteDatabase db)");
db.execSQL("CREATE TABLE "+tablename
+" ("
+col1+ " TEXT PRIMARY KEY , "
+col2+ " TEXT , "
+col3+ " TEXT , "
+col4+ " TEXT , "
+col5+ " TEXT , "
+col6+ " TEXT , "
+col7+ " TEXT , "
+col8+ " TEXT "
+")");
db.execSQL("CREATE TABLE "+configTable
+" ("
+colName+ " TEXT PRIMARY KEY , "
+colValue+ " TEXT "
+")");
ContentValues cv=new …
Run Code Online (Sandbox Code Playgroud) 需要JAVASCRIPT或JAVA解决方案
我正在寻找的解决方案可以使用java或javascript.我有一个字符串中的html代码,所以我可以在使用java之前或之后用javascript操作它.
问题
无论如何,我必须用标签包装每个单词.例如:
<html> ... >
Hello every one, cheers
< ... </html>
Run Code Online (Sandbox Code Playgroud)
应改为
<html> ... >
<word>Hello</word> <word>every</word> <word>one</word>, <word>cheers</word>
< ... </html>
Run Code Online (Sandbox Code Playgroud)
为什么?
这将帮助我使用javascript来选择/突出显示一个单词.似乎唯一的方法是使用我在JAVASCRIPT提示中添加的函数highlightElementAtPoint :它只是找到某个x,y坐标的元素并突出显示它.我认为,如果每个单词都是一个元素,它将是可行的.
我的想法是使用这种方法允许我们检测android WebView中突出显示的文本,即使这意味着使用扭曲突出显示方法.多想一想,您会发现许多其他应用程序.
JAVASCRIPT提示
我使用以下代码突出显示一个单词; 但是,这将突出显示属于某个标签的整个文本.当每个单词都是一个标签时,这将在某种程度上起作用.如果有替代品可以让我在某个位置突出显示一个单词,那么它也是一个解决方案.
function highlightElementAtPoint(xOrdinate, yOrdinate) {
var theElement = document.elementFromPoint(xOrdinate, yOrdinate);
selectedElement = theElement;
theElement.style.backgroundColor = "yellow";
var theName = theElement.nodeName;
var theArray = document.getElementsByTagName(theName);
var theIndex = -1;
for (i = 0; i < theArray.length; i++) {
if (theArray[i] == theElement) {
theIndex = …
Run Code Online (Sandbox Code Playgroud) 在我的代码中我使用的requestRouteToHost()
方法:
这种路由是否意味着将WIFI改为3G,反之亦然?
我的代码无效......
public static boolean isHostAvailable(Context context, String urlString) throws UnknownHostException, MalformedURLException {
boolean ret = false;
int networkType = ConnectivityManager.TYPE_WIFI;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm != null){
NetworkInfo nf = cm.getActiveNetworkInfo();
if(nf != null){
networkType = nf.getType();
}
URL url = new URL(urlString);
InetAddress iAddress = InetAddress.getByName(url.getHost());
ret = cm.requestRouteToHost(networkType, ipToInt(iAddress.getHostAddress()));
}
return ret;
}
public static int ipToInt(String addr) {
String[] addrArray = addr.split("\\.");
int num = 0;
for (int i=0;i<addrArray.length;i++) {
int power …
Run Code Online (Sandbox Code Playgroud) 目前,我正在使用它来将我的应用程序背景显示为手机壁纸。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER,
WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER);
Run Code Online (Sandbox Code Playgroud)
但是出于某种原因,当我按下图标启动我的应用程序时。它只是在主屏幕上显示带有图标的活动屏幕。我没有使用对话框,但它看起来像一个对话框,因为布局就是这样设置的。所以我只想在此活动运行时显示墙纸。但它仅在下一个事件发生后才显示墙纸,例如切换到不同的活动。我已经把那个代码放在上面了onCreate()
,每当我这样做的时候setContentView()
......有没有办法做这样的事情还是没有办法?
我没有意义
public abstract class SampleAdapter <T extends Adapter> extends ViewGroup
Run Code Online (Sandbox Code Playgroud)
它有什么作用?一般来说,我们执行正常继承,但这里有一些扩展形式.任何身体可以建议我吗?
谢谢
当我们扩展DefaultHandler时,我们通常会覆盖字符函数.
我想知道哪种提取String所提供的更有效的方法...
它会使用for循环和StringBuilder吗?
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
StringBuilder sb = new StringBuilder(length);
for(int i=start; i<start+length; i++)
sb.append(ch[i]);
String values = sb.toString();
}
Run Code Online (Sandbox Code Playgroud)它会使用一个简单的子串吗?
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String values = (new String(ch)).substring(start, start + length);
}
Run Code Online (Sandbox Code Playgroud)还有另一种方法吗?