我有一个init方法,通过广泛的层次结构使用和覆盖.然而,每个init调用都扩展了之前的工作.很自然地,我愿意:
@Override public void init() {
super.init();
}
Run Code Online (Sandbox Code Playgroud)
当然,这将确保一切都被调用和实例化.我想知道的是:我可以创建一种方法来确保调用超级方法吗?如果所有的init都没有调用,那么obejct就会出现故障,所以如果有人忘记调用,我想抛出异常或错误super.
TYFT~Aedon
创建静态实用程序类的缺点是什么?我做的越多,我发现它们就越有用.我知道他们缺乏面向对象的设计,但我仍然比他更应该爱他们.是否还有其他用途?
我的应用程序中有一些内存泄漏.它们都是围绕一个特定的视图集群发起的,我花了很多时间进行调整,并试图尽可能减少大量的上下文传递.这让我相信群集中使用的位图是个问题.所以我想将WeakReferences用于对视图使用的位图的所有引用.我从未使用过WeakReference,也不确定这是否是一个很好的应用程序.任何机构都可以提供有用的指示或提示吗?
我正在尝试通过显示名称找到联系人.目标是打开此联系人并向其添加更多数据(特别是更多的电话号码),但我很难找到我想要更新的联系人.
这是我正在使用的代码:
public static String findContact(Context context) {
ContentResolver contentResolver = context.getContentResolver();
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI;
String[] projection = new String[] { PhoneLookup._ID };
String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?";
String[] selectionArguments = { "John Johnson" };
Cursor cursor = contentResolver.query(uri, projection, selection, selectionArguments, null);
if (cursor != null) {
while (cursor.moveToNext()) {
return cursor.getString(0);
}
}
return "John Johnson not found";
}
Run Code Online (Sandbox Code Playgroud)
我确实有一个名为"John Johnson"的联系人,但该方法始终返回"未找到".我也尝试用一个名字搜索一个联系人,这没什么区别.
我怀疑它的东西,错误的URI,选择或选择论,因为我无法找到搜索与给定的显示名称接触的任何例子在线,似乎显示名称是一种特殊的信息,例如从不同一个电话号码.
任何想法如何找到约翰逊?
更新:我发现了如何通过显示名称找到联系人:
ContentResolver contentResolver = context.getContentResolver();
Uri uri = Data.CONTENT_URI;
String[] projection …Run Code Online (Sandbox Code Playgroud) 我一直在研究这个问题.想法开始很简单,我想在SlidingDrawer句柄上有一个按钮,允许用户查看特定于抽屉内容的设置.所以我做了一个布局,侧面有一个按钮,并将其设置为手柄.抽屉拉得很好,但是不允许按下按钮(在把手上).当我尝试单击该东西时,单击被解释为手柄单击,并切换抽屉的状态.
有谁知道发生了什么?
谢谢~Aedon
作为一个Android程序员,我花了很多时间将我的测试设备(手机)插入我的电脑.和我一样懒惰,我希望能够通过我的电脑通过手机发送短信.
例如:我得到一个文本,文本被推送到活动的ADB连接,我可以将其发送到正在运行的脚本,这将允许我在计算机上查看文本.然后我可以输入响应,按Enter键,将文本通过活动的ADB连接推送到手机并发送到目标.
我有什么办法吗?也许有一个ADB命令,我可以通过python脚本或其他什么路由?
什么时候需要new在Java中使用关键字.我知道你应该在创建像这样的对象的实例时使用它:
TextView textView = new TextView(this);
Run Code Online (Sandbox Code Playgroud)
有时在代码中我注意到new没有使用,我感到困惑..在这行代码中:
AssetManager assetManager = getAssets();
Run Code Online (Sandbox Code Playgroud)
为什么不像这样创建AssetManager的实例:
AssetManager assetManager = new AssetManager();
Run Code Online (Sandbox Code Playgroud)
那么它被设置为等于getAssests()?
什么时候应该new使用?
谢谢!
类似于是否可以在c#中创建一个新的运算符?,是否可以为Java创建自己的运算符?我最初会说不,因为你不能重载,但是再一次,String支持+和+ =(在执行时隐式地通过StringBuilder等).
有没有办法为Android创建自定义XML数据类型?
我有一个Model包含我的实体的所有统计信息的类.我希望能够Model从类似的xml中扩展类 - 好吧,像View一样exaclty.这可能吗?
例:
<?xml version="1.0" encoding="utf-8"?>
<models xmlns:android="http://schemas.android.com/apk/res/android">
<model name="tall_model"
type="@string/infantry"
stat_attack="5"
>Tall Gunner</model>
<model name="short_model"
type="@string/infantry"
stat_attack="3"
ability="@resource/scout"
>Short Gunner</model>
<model name="big_tank"
type="@string/vehicle"
stat_attack="7"
armour="5"
>Big Tank</model>
</models>
Run Code Online (Sandbox Code Playgroud)
而我想要膨胀的课程.
class Model [extends Object] {
public Model(Context context, AttributeSet attrs) {
// I think you understand what happens here.
}
// ...
}
Run Code Online (Sandbox Code Playgroud) android ×6
java ×5
adb ×1
bitmap ×1
memory-leaks ×1
mp3 ×1
new-operator ×1
object ×1
onclick ×1
polymorphism ×1
sms ×1
static ×1
super ×1
ubuntu ×1
xml ×1