小编Arc*_*pgc的帖子

Android:如何跟踪软键盘是否打开?

在我的应用程序中,设备软键盘覆盖了EditTextViews,因此用户无法看到他正在键入的内容.

所以我想隐藏其他视图(就像我的情况下的一个按钮),以使EditTextViews可见.

而是做了类似的事情

EditText.onFocus(){
//hide button
}
Run Code Online (Sandbox Code Playgroud)

对于每个EditText,我想做类似的事情

if(soft-keyboard.isOpenned())
//hide button
}
Run Code Online (Sandbox Code Playgroud)

如何打开或关闭软键盘?

编辑:

其实我的布局是这样的:

   <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="@android:color/transparent"
        android:focusable="true"
        android:focusableInTouchMode="true" >
    </LinearLayout>

    <ImageView
        android:id="@+id/Logo"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:src="@drawable/wic_logo_small" />

    <Button
        android:id="@+id/goButton_iWant"
        android:layout_width="35dp"
        android:layout_height="45dp"
        android:layout_alignParentRight="true"
        android:background="@color/black"
        android:gravity="center_vertical|center_horizontal"
        android:text="@string/go" />

    <AutoCompleteTextView
        android:id="@+id/searchAutoCompleteTextView_iWant"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/goButton_iWant"
        android:layout_toRightOf="@id/Logo"
        android:hint="@string/search"
        android:textColor="@color/white" />

    <TextView
        android:id="@+id/iWantLabel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/iWantPageLogo"
        android:background="@color/grey"
        android:gravity="center_vertical|center_horizontal"
        android:text="@string/iWant"
        android:textColor="@color/white" />

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollViewiWant"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/iWantLabel"
        android:scrollbars="vertical" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/iNeedToBuy" …
Run Code Online (Sandbox Code Playgroud)

android android-softkeyboard android-edittext

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

Android:如何在Facebook应用配置中使用多个包

我可以在Facebook配置设置中拥有多个包名称,以便在我的应用程序中使用Facebook API.

在此输入图像描述

我必须能够将相同的Facebook应用程序用于不同的Android应用程序吗?

android facebook

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

打开ActionLayout时隐藏菜单项

我正在使用ActionBarSherlock:

有3个菜单项,其中只有1个具有ActionLayout.

default_menu.xml

<item
    android:id="@+id/searchIcon"
    android:icon="@drawable/search_icon"
    android:actionLayout="@layout/search_icon_actionview"
    android:showAsAction="always|collapseActionView"
    android:title="Search"/>
<item
    android:id="@+id/newIcon"
    android:icon="@drawable/new_icon"
    android:orderInCategory="0"
    android:showAsAction="ifRoom|collapseActionView"
    android:title="New"/>
<item
    android:id="@+id/notificationIcon"
    android:icon="@drawable/notification_icon"
    android:orderInCategory="0"
    android:showAsAction="ifRoom|collapseActionView"
    android:title="Notifications"/>
Run Code Online (Sandbox Code Playgroud)

如果我使用上面的代码.只有前2个图标可见.如果我将"第二"和"第三"视为" 始终",则即使在单击" 搜索"时打开了actionLayout,它们也会保留.

我想最初显示所有3个菜单项,当点击search_icon时隐藏每个项目.

我对我的实施也有疑问,不管我是以正确的方式做事.

在Activity的(有一个viewPager)第一个片段:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.searchIcon:

    mEtSearchbar.clearFocus();
    (new Handler()).postDelayed(new Runnable() {
       public void run() {
           mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
           mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP , 0, 0, 0));
       }
    }, 100);

        return true;
    case R.id.newIcon:

        return true;
    case R.id.notificationIcon:

        return true;
    default:
        return super.onOptionsItemSelected(item); …
Run Code Online (Sandbox Code Playgroud)

actionview menuitem actionbarsherlock android-actionbar

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

Android:在进行HTTP调用时使用cookie保持服务器会话

服务器端会话存储在数据库中并使用cookie进行维护.因此,每个客户端都必须提供与数据库中的会话匹配的有效cookie.

在Android端:

DefaultHttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = client.execute(httppost);
Run Code Online (Sandbox Code Playgroud)

如果我使用相同的客户端进行所有服务器调用,则客户端会处理这些cookie.

但问题是,当客户端被破坏时,由于设备需要内存,cookie将丢失,任何后续服务器调用都不起作用.

有没有办法让HttpClient持久性?或者在android端维护cookie的常用方法是什么.

php cookies session android http

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

Android:无法连接到Camera.open()的相机服务;

有许多类似的问题,但没有人帮助我:

我的清单文件是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.cameraapi"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".CameraAPIActivity"
            android:label="@string/app_name"
            android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

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

我的Activity类是:

public class CameraAPIActivity extends Activity {
    private Camera myCamera = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        if (checkCameraHardware(this)) {

            try {

                myCamera = Camera.open();
            } catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

android android-camera

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

在操作栏sherlock中填充菜单项

我正在使用标题名称,搜索操作溢出菜单项的操作栏,尽管我正在使用ActionBarSherlock库.我想在操作栏中删除搜索和操作溢出菜单项的填充.

android actionbarsherlock android-actionbar

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

Android:用于获取通知的服务类中的intent.putExtra

这是我在Service类中的showNotification方法:

private void showNotification() {

Notification notification = new Notification(R.drawable.icon,
"New Notification", System.currentTimeMillis());

Intent i = new Intent(this, myActivity.class);
i.putExtra("notification", "MyNotif");
i.putExtra("notifiedby", "NotedBy");
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, i, 0);
notification.setLatestEventInfo(this, "NotedBy", "MyNotif", contentIntent);
nm.notify(111, notification);
}
Run Code Online (Sandbox Code Playgroud)

所以点击后通知状态栏,我将结束myActivity.

问题是这些行总是在myActivity中给出错误.

this.getIntent().hasExtra("notification")
this.getIntent().hasExtra("notifiedby")
Run Code Online (Sandbox Code Playgroud)

putExtra()不能与PendingIntent一起工作吗?

service android android-intent

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

Android:检查我的服务是否在后台运行

我正在运行服务以在我的应用程序中每1小时获取一次通知.

服务肯定每1小时运行一次; 我使用Logcat检查了它.

但是由于我在onResume()MainActivity中启动此服务,我想检查服务是否已经运行,并且只有在它没有运行时启动它.

我用过这段代码:

private boolean isMyServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if ("com.android.MyApp.MyServices.NotificationsService".equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但我总是假的.

所以我查看了输出结果service.service.getClassName().我的服务不在列表中.

是因为我的申请未知吗?或者是其他东西?

service android

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

操作栏显示在其选项卡下方

当我设置这些属性时:

    actionBar = getSupportActionBar();

    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setTitle("Title");
    actionBar.setLogo(null);

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Run Code Online (Sandbox Code Playgroud)

动作条是低于它的标签.

但如果我评论这样:

actionBar.setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)

它工作正常.但我希望它是的原因是,避免显示appIcon.

谢谢

android actionbarsherlock android-actionbar

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

使用Easytracker进行谷歌分析时未捕获的异常

我在每个活动中都使用这个:

@Override
public void onStart() {
    super.onStart();
    EasyTracker.getInstance().activityStart(this);
}

@Override
public void onStop() {
    super.onStop();
    EasyTracker.getInstance().activityStop(this);
}
Run Code Online (Sandbox Code Playgroud)

并通过这个文档

我发现:

使用EasyTracker
要使用EasyTracker 自动跟踪应用程序中所有未捕获的异常,请将此行添加到您的analytics.xml文件中:

<bool name="ga_reportUncaughtExceptions">true</bool>
Run Code Online (Sandbox Code Playgroud)

使用自动异常跟踪跟踪异常后,EasyTracker会将异常传递给Thread的默认异常处理程序.

使用自动异常跟踪时,请注意以下事项:

  1. 通过自动异常跟踪跟踪的所有异常都会在Google Analytics中报告为致命异常.
  2. 使用堆栈跟踪自动填充描述字段.

但是当我收到UncaughtException并且应用程序崩溃时,在Google Analytics描述中,它只显示:

An error occured while executing doInBackground()
Run Code Online (Sandbox Code Playgroud)

不是上面提到的堆栈跟踪.什么东西需要添加?

谢谢

android google-analytics easytracker

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