小编Gab*_*lle的帖子

从共享首选项中放入并获取String数组

我需要在共享首选项上保存一些字符串数组,然后才能获取它们.我试过这个:

prefsEditor.putString(PLAYLISTS, playlists.toString()); 播放列表的位置 String[]

得到:

playlist= myPrefs.getString(PLAYLISTS, "playlists");播放列表是一个String但它不起作用.

我怎样才能做到这一点 ?谁能帮我?

提前致谢.

arrays string android sharedpreferences

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

在Android中检测连接是否为wifi,3G或EDGE?

我需要在android中检测是否有任何连接Wifi3G(或3G+)或EDGE在android中.当有连接wifi3G我可以发送照片到服务器,何时只是一个连接EDGE不发送到服务器.

我看到可以检测到wifi连接ConnectivityManager.TYPE_WIFI,ConnectivityManager.TYPE_MOBILE并且TelephonyManager.NETWORK_TYPE_EDGE可以检测到EDGE连接.但怎样才能检测到3G或3G +?

android wifi 3g

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

片段 XXX {} 未与片段管理器关联

我开始在我的应用程序中使用导航组件,但我面临以下问题。我的第一个片段是 LoginFragment。登录成功后,显示mainFragment。我希望当用户在 mainFragment 上并按后退按钮不返回到 loginFragment 时。为此,我在 nav_graph 中添加了这两行:app:popUpTo="@+id/lovable_app_navigation"并且app:popUpToInclusive="true"效果很好。这是我的导航图:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/app_navigation"
  app:startDestination="@id/loginFragment">

  <fragment
    android:id="@+id/loginFragment"
    android:name="com.xxx.LoginFragment"
    android:label="LoginFragment"
    tools:layout="@layout/login_fragment">
    <action
      android:id="@+id/dashboard_action"
      app:destination="@id/mainFragment"
      app:launchSingleTop="true"
      app:popUpTo="@+id/app_navigation"
      app:popUpToInclusive="true"/>
  </fragment>

  <fragment
    android:id="@+id/mainFragment"
    android:name="com.xxx.MainFragment"
    android:label="MainFragment"
    tools:layout="@layout/main_fragment">
       <action
      android:id="@+id/logout_action"
      app:destination="@id/loginFragment"
      app:launchSingleTop="true"
      app:popUpTo="@+id/app_navigation"
      app:popUpToInclusive="true"/>
  </fragment>

  <action
    android:id="@+id/action_global_loginFragment"
    app:destination="@id/loginFragment" />
</navigation>
Run Code Online (Sandbox Code Playgroud)

问题是,一段时间后,当我的会话过期时,用户在应用程序中的哪个位置、在哪个片段中都无关紧要,我必须在所有堆栈上显示 LoginFragment。我为此创建了一个全局操作action_global_loginFragment。问题是,当我导航到 LoginFragment 时,出现此错误:

java.lang.IllegalStateException: Fragment LoginFragment{1d6bd24 (829a6832-3480-4bcb-a3f6-7e2ba214d3ca)} not associated with a fragment manager.
Run Code Online (Sandbox Code Playgroud)

如果我删除popUpTo并且popUpToInclusive它工作正常,但是后退按钮功能受到影响,它会从 mainFragment 返回到 loginFragment。知道如何解决这个问题吗?提前致谢。

navigation android android-jetpack-navigation

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

在sqlite中更改列中的值

我需要更新某个表中的列中的值.我试过这个:

 public void updateOneColumn(String TABLE_NAME, String Column, String rowId, String ColumnName, String newValue){
                 String sql = "UPDATE "+TABLE_NAME +" SET " + ColumnName+ " = "+newValue+" WHERE "+Column+ " = "+rowId;
                 db.beginTransaction();
                 SQLiteStatement stmt = db.compileStatement(sql);
                 try{
                     stmt.execute();
                     db.setTransactionSuccessful();
                 }finally{
                     db.endTransaction();
                 }

        }
Run Code Online (Sandbox Code Playgroud)

我这样称呼这个方法:

 db.updateOneColumn("roadmap", "id_roadmap",id,"sys_roadmap_status_mobile_id", "1");
Run Code Online (Sandbox Code Playgroud)

这意味着我要设置的值1sys_roadmap_status_mobile_idid_roadmap = id.

问题是没有任何反应.我的错误在哪里?

sqlite android

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

在android中获取语言?

在我的Android应用程序中,我需要知道这种格式的电话语言:fr(用于francais),en(用于英语)等.我该怎么做?我知道我可以用这个显示语言:

Locale.getDefault().getDisplayLanguage()
Run Code Online (Sandbox Code Playgroud)

但结果是francais,英语,......

我能以某种方式获得语言的缩写吗?

android

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

检测视频何时停止播放

我有这个代码用于播放视频 VideoView

myVideoView = (VideoView) findViewById(R.id.VideoView);
myVideoView.setVideoURI(Uri.parse(path));
myVideoView.requestFocus();
myVideoView.start();
Run Code Online (Sandbox Code Playgroud)

当视频播放完毕后,我收到消息:"抱歉,此视频无法播放".我想缓存视频播放完毕的那一刻.我怎样才能做到这一点?

这是我的代码:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video);

        Bundle extras = getIntent().getExtras();
        path = extras.getString("path");
        idPlaylist = extras.getString("idPlaylist");
        timer = extras.getString("timer");

        myVideoView = (VideoView) findViewById(R.id.VideoView);
        myVideoView.setVideoURI(Uri.parse(path));
        myVideoView.requestFocus();
        myVideoView.start();

        myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                Intent i = new Intent(getBaseContext(),
                        com.PlayerOrange.ViewPlaylist.class);
                i.putExtra("id", idPlaylist);
                i.putExtra("timer", timer);
                startActivity(i);
                finish();           
                }
          });

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        System.out.println("Playing "+myVideoView.isPlaying());
        if ((keyCode == KeyEvent.KEYCODE_BACK) && (myVideoView.isPlaying()==true)) {
                //nothing …
Run Code Online (Sandbox Code Playgroud)

android android-videoview

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

在AlertDialog中隐藏键盘

我有一个带有editext的alertdialog.对于这个Edittext,我让键盘出现,我希望当用户按下确定或取消隐藏键盘时.奇怪的问题是当用户选择ok时,键盘是隐藏的,但是当选择取消时键盘不会隐藏我在两种情况下使用相同的代码.

这是我的代码:

final AlertDialog.Builder alert = new AlertDialog.Builder(this);

        alert.setTitle(data);
        final EditText input = new EditText(this);
        InputFilter[] FilterArray = new InputFilter[1];
        FilterArray[0] = new InputFilter.LengthFilter(25);
        input.setFilters(FilterArray);
        input.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager keyboard = (InputMethodManager)
                getSystemService(Context.INPUT_METHOD_SERVICE);
                keyboard.showSoftInput(input, 0); 
            }
        },200);



        alert.setView(input);

        alert.setPositiveButton(ok, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                text = input.getText().toString().trim();
                Canvas c = new Canvas(bitmapResult);
                drawTextImage(bitmapResult);
                saveimage();
                InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
            }
        });

        alert.setNegativeButton(cancel,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, …
Run Code Online (Sandbox Code Playgroud)

keyboard android show-hide

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

AdapterView不支持removeView(View)

我想在单击ImageView时从listView中删除某一行.我的listview看起来像这样: 在此输入图像描述

我希望在单击最后一个图像时删除该行.这是我的适配器:

public class UserItemAdapter extends ArrayAdapter<Photos.Record> {
        private ArrayList<Photos.Record> photos;

        public UserItemAdapter(Context context, int textViewResourceId, ArrayList<Photos.Record> photos) {
            super(context, textViewResourceId, photos);
            this.photos = photos;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            View v = convertView;


            if (v == null) {
                LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.photorowlist, null);
                                v.setClickable(true);
                                v.setFocusable(true);
            }

            Photos.Record user = photos.get(position);
            if (user != null) {
                TextView photo_name = (TextView) v.findViewById(R.id.photoname);

                if (photo_name != null) {
                    photo_name.setText(user.photo_name);
                }

            }
                        v.setOnClickListener(new …
Run Code Online (Sandbox Code Playgroud)

android listview adapter android-adapterview

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

ViewFlipper:Receiver未注册

在我的应用程序有时我收到此错误:

 java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper$1@4806a4a8   
at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:667)
at android.app.ApplicationContext.unregisterReceiver(ApplicationContext.java:840)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:321)
at android.widget.ViewFlipper.onDetachedFromWindow(ViewFlipper.java:104)
at android.view.View.dispatchDetachedFromWindow(View.java:5891)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1076)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
at android.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1570)
at android.view.ViewRoot.doDie(ViewRoot.java:2565)
at android.view.ViewRoot.die(ViewRoot.java:2535)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:218)
at android.view.Window$LocalWindowManager.removeViewImmediate(Window.java:436)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3498)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3599)
at android.app.ActivityThread.access$2300(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1867)
 at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是什么?我该怎么办?需要一些帮助,请...

这是一些代码:

onCreate()方法我有这样的:

vf = (ViewFlipper) findViewById(R.id.details);
        vf.setFlipInterval(3000);
        vf.startFlipping();
        populate();
Run Code Online (Sandbox Code Playgroud)

其中populate方法是这样的:

private void populate() {
        for (int i …
Run Code Online (Sandbox Code Playgroud)

android receiver viewflipper

9
推荐指数
2
解决办法
6228
查看次数

检测用户是否与手机互动?

我需要检测用户何时与手机交互并在最后一次用户触摸屏幕60秒后重启我的应用程序.有可能做那样的事吗?它必须作为PC的屏幕服务器.

service android action restart

8
推荐指数
2
解决办法
512
查看次数