小编Rak*_*ari的帖子

以编程方式设置textSize

textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.result_font));
Run Code Online (Sandbox Code Playgroud)

下面的代码可以工作,但是R.dimen.result_font它被视为比实际更大的值.根据屏幕尺寸,它可能约为18sp-22sp或24sp ......但这里设置的尺寸至少约为50sp.有人可以推荐一下吗?

android

55
推荐指数
2
解决办法
4万
查看次数

Android服务:START_STICKY不适用于Kitkat

我在应用程序中使用服务来监听用户按下他/她的电源按钮的次数.实施在所有设备上都运行良好.但是当我在Android Kitkat上测试应用程序时,我注意到了一些错误.

只要我将应用程序从最近的应用程序中移开,应用程序就不再会监听电源按钮.

这是我正在使用的代码:

public class Receiver extends Service {

    Notification notification;
    private static final int NOTIFICATION_ID = 0;
    NotificationManager manager;
    PendingIntent toOpen;
    Intent intent;
    private BroadcastReceiver POWER_BUTTON = new Powerbuttonrecceiver();

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        registerReceiver(POWER_BUTTON, filter);
        startNotify();
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        unregisterReceiver(POWER_BUTTON);
        dismissNotification();
        super.onDestroy(); …
Run Code Online (Sandbox Code Playgroud)

android android-service android-broadcast

18
推荐指数
1
解决办法
6601
查看次数

解析XML时出错:库上的未绑定前缀

我在我的项目中使用了三个库:

a. ViewPager
b. SherlockActionBar
c. PagerSlidingTabStrip
Run Code Online (Sandbox Code Playgroud)

在我的布局xml中,我error parsing XML在这里得到以下内容:

<com.astuetz.viewpager.extensions.PagerSlidingTabStrip
    android:id="@+id/strips"
    android:layout_width="match_parent"
    android:layout_height="48dip"
    app:indicatorColor="#FF9326"
    app:textAllCaps="false" />
Run Code Online (Sandbox Code Playgroud)

我实现了与项目中使用的其他两个库相同的库.另外两个库运行顺利.错误仅存在于此内.请帮忙.

完整布局xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainSlider" >

    <com.astuetz.viewpager.extensions.PagerSlidingTabStrip
        android:id="@+id/strips"
        android:layout_width="match_parent"
        android:layout_height="48dip"
        app:indicatorColor="#FF9326"
        app:textAllCaps="false" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我已经尝试清理项目,将库重新添加到工作区等.

xml android

15
推荐指数
2
解决办法
4万
查看次数

循环通过List android

我有以下方法:

 public List<String> getAllValue(){
       List<String> list = new ArrayList<String>();
       if(pref.getString(KEY_NUMBER1 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER1 , ""));
       if(pref.getString(KEY_NUMBER2 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER2 , ""));
       if(pref.getString(KEY_NUMBER3 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER3 , ""));
       if(pref.getString(KEY_NUMBER4 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER4 , ""));
       if(pref.getString(KEY_NUMBER5 , "").length()>2)
           list.add(pref.getString(KEY_NUMBER5 , ""));

       return list;
   }
Run Code Online (Sandbox Code Playgroud)

我现在需要做的是将这些数字(如KEY_NUMBER1)分配给以下内容editTexts:

EditText phoneNumber1, phoneNumber2, phoneNumber3, phoneNumber4, phoneNumber5;
Run Code Online (Sandbox Code Playgroud)

作为使用Lists的新手,我很难找到一种循环方式并为这些editTexts赋值,比如

phoneNumber1.setText(KEY_NUMBER1);
phoneNumber2.setText(KEY_NUMBER2);
phoneNumber3.setText(KEY_NUMBER3);
Run Code Online (Sandbox Code Playgroud)

java android list arraylist

14
推荐指数
1
解决办法
3万
查看次数

当应用程序启动时,使活动仅出现一次

我有以下类SplashActivity.java:

public class SplashScreen extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.splash);
        Thread timer = new Thread(){
            public void run(){
                try{
                    sleep(5000);
                }catch(InterruptedException e)
                {
                    e.printStackTrace();
                }
                finally{
                    Intent tutorial = new Intent(SplashScreen.this, TutorialOne.class);
                    startActivity(tutorial);
                }

            }
        };
        timer.start();
          }
}
Run Code Online (Sandbox Code Playgroud)

我希望此活动仅在首次在移动设备上首次安装应用时加载一次.作为Android的新手,我对此一无所知.我读到了SharedPreferences要使用的地方,但是不了解实施情况.关于这项活动的事情是,活动必须作为Launcher第一次使用时,这才是真正让我困惑的事情.因为在清单文件中我宣布另一个活动,在我的情况下将是MainPage.java.那我怎么能实现这个逻辑?难道我呼吁SplashActivityMainPage还是有别的东西,必须做的?请帮助别人?

有人可以写下代码来实现这个逻辑吗?

android sharedpreferences

6
推荐指数
1
解决办法
2万
查看次数

计算布局中的可见元素

假设在我的LinearLayout(比如parentLayout)中有另外5个LinearLayouts(比如childLayout),其中只有其中一个可见.其他布局依赖于某些外部事件以使其可见.如何计算parentLayout中可见的childLayout数?

android android-linearlayout

6
推荐指数
1
解决办法
2366
查看次数

将游标数据放入数组中

在Android中是新手,我在处理以下内容时遇到问题:

public String[] getContacts(){
    Cursor cursor = getReadableDatabase().rawQuery("SELECT name FROM contacts", null);
    String [] names = {""};
    for(int i = 0; i < cursor.getCount(); i ++){
            names[i] = cursor.getString(i);
    }
    cursor.close();
    return names;
}
Run Code Online (Sandbox Code Playgroud)

以下给出了以下错误:

09-18 10:07:38.616: E/AndroidRuntime(28165): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sqllitetrial/com.example.sqllitetrial.InsideDB}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 5
Run Code Online (Sandbox Code Playgroud)

我试图将光标内的数据提取到一个数组.有人可以帮我实现.

android android-cursor android-sqlite

5
推荐指数
2
解决办法
2万
查看次数

ImageView setImageBitmap在某些设备上不起作用

我正在尝试Camera API以下操作:

一种。为拍摄的图像设置目录(用于startActivityForResult

b。设置位图,以便将图像保存到应用程序本身后即可显示。

这是以下代码:

设置目录。

private static File getOutputMediaFile(int type) {

    // External sdcard location
    File mediaStorageDir = new File(
            Environment
                    .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
            IMAGE_DIRECTORY_NAME);
    // Create the storage directory if it does not exist
    if (!mediaStorageDir.exists()) {
        if (!mediaStorageDir.mkdirs()) {
            Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
                    + IMAGE_DIRECTORY_NAME + " directory");
            return null;
        }
    }
    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
            Locale.getDefault()).format(new Date());
    File mediaFile;
    if (type == MEDIA_TYPE_IMAGE) { …
Run Code Online (Sandbox Code Playgroud)

android imageview android-camera

5
推荐指数
1
解决办法
4766
查看次数

通过标签或ID访问片段之间的区别

我知道我可以创建一个片段,并通过标签或ID将其添加。是否可以选择使用其中一个?有什么理由使我我要在另一个上使用?

model = new ModelFragment();

//tag
getSupportFragmentManager().beginTransaction().add(model, "tag").commit();
//id
getSupportFragmentManager().beginTransaction().add( 4, model).commit();
Run Code Online (Sandbox Code Playgroud)

android android-fragments

4
推荐指数
1
解决办法
1125
查看次数

在listView的自定义适配器中使用hashMaps

以下是我目前用于listView的代码:

private class Asyncprojectlist extends AsyncTask<Void, Void, Void>{
        JSONArray JSar;
        JSONObject JSob;
        String project_title, project_sector;
        @Override
        protected void onPreExecute() {
            progressDialog =  new ProgressDialog(Allprojects.this);
            progressDialog.setCancelable(false);
            progressDialog.setMessage("Loading...");
            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.setProgress(0);
            progressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) {
            UserFunctions user = new UserFunctions();
            JSob = user.allprojects();
            try {
                JSar = JSob.getJSONArray("data");

            } catch (JSONException e1) {
                e1.printStackTrace();
            }
            for(int i=0; i<JSar.length(); i++){
                try {
                    JSONObject newobj = JSar.getJSONObject(i);
                    project_title = newobj.getString("title");
                    project_sector = newobj.getString("sector");

                    HashMap<String, String> single = new HashMap<String, String>();
                    single.put("title", …
Run Code Online (Sandbox Code Playgroud)

android listview hashmap custom-adapter

1
推荐指数
1
解决办法
1万
查看次数

ListView onItemClickListener

一个错误:

09-26 13:09:38.551: E/AndroidRuntime(25966): FATAL EXCEPTION: main
09-26 13:09:38.551: E/AndroidRuntime(25966): java.lang.ClassCastException: java.util.HashMap
09-26 13:09:38.551: E/AndroidRuntime(25966):    at com.example.customlayoutlistview.MainActivity$1.onItemClick(MainActivity.java:79)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at android.widget.AdapterView.performItemClick(AdapterView.java:284)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at android.widget.ListView.performItemClick(ListView.java:3584)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:1846)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at android.os.Handler.handleCallback(Handler.java:587)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at android.os.Handler.dispatchMessage(Handler.java:92)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at android.os.Looper.loop(Looper.java:130)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at android.app.ActivityThread.main(ActivityThread.java:3687)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at java.lang.reflect.Method.invokeNative(Native Method)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at java.lang.reflect.Method.invoke(Method.java:507)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
09-26 13:09:38.551: E/AndroidRuntime(25966):    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

正在以下方法实现中找到: …

android listview

0
推荐指数
1
解决办法
3125
查看次数