标签: android-widget

如何计算合适的场宽?

在我的应用程序中,我正在显示一个表格,其中单个单元格是可编辑的文本字段(即EditText对象).我目前正在努力为这些计算合适的宽度.

如果我将宽度设置为与显示的文本中包含字符一样多的"Ems",那么我的字段宽度大约为2倍,表格看起来很丑,浪费了大量宝贵的屏幕空间.在"Ems"中设置宽度基本上就像假设最坏的情况一样,即假设它只包含字体中最宽泛的字符,通常为"M"(因此是方法的名称),即字符串的宽度,'m ','W'或'_').但平均而言,字符串包含较窄的字符,因此大多数字段都是半空的,并且对于实际内容来说太宽.因此,我拼命寻求一种方法来计算更好的拟合宽度,而不是最坏情况下的宽度.

在Java中执行此操作的"常规"方法(至少在AWT或Swing中)是要求窗口小部件的当前字体(实际上是字体的FontMetrics),以计算并返回以像素为单位显示给定字符串所需的宽度.但是如何获得TextView的字体呢?我没有找到任何方法来获取(文本)视图的字体和/或根据单元格的文本字符串的实际内容计算更合适的宽度.如何在Android中做到这一点?

迈克尔

android android-widget

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

重新启动我的Widget配置活动在后台启动我的应用程序

我现在有一个相当复杂的应用程序,我想要包含一个应用程序小部件.到目前为止工作正常,一切都是使用内容提供商,服务和配置实用程序设置的.

现在......我希望能够在第一次初始配置后再次重新配置我的小部件.所以我的猜测只是使用PendingIntent和.getActivity()再次启动我的配置活动.到目前为止工作正常!

    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_news_layout);

    Intent config_intent = new Intent(context.getApplicationContext(), NewsWidgetConfigure.class);
    config_intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mappWidgetId);
    config_intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    PendingIntent conf_penIntent = PendingIntent.getActivity(context, mappWidgetId, config_intent,
            PendingIntent.FLAG_UPDATE_CURRENT);

    views.setOnClickPendingIntent(R.id.settings_button, conf_penIntent);
Run Code Online (Sandbox Code Playgroud)

现在......问题是,我的配置活动重新启动会带回整个应用程序,这意味着在"返回"之后 - 按下,以及在我的Configuration.finish()之后,用户返回到应用程序,而不是主屏幕.

我确信这个问题与launchModes或Intent Flags有关......但我现在无法掌握它并且它让我烦恼了好几个小时.

在此先感谢您的帮助.

android-widget

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

如何从 rss feed 制作主屏幕小部件?

这是一个由三部分组成的问题。我是 Android 新手,正在尝试创建一个新应用程序来读取 RSS 源并以widget.

  1. 需要哪些网络调用才能显示格式正确的 RSS 提要?
  2. 我可以使用什么布局结构来保存接收到的内容?
  3. 如果用户从此小部件中选择 RSS 提要的链接,如何使 Web 浏览器打开该链接?

感谢您的帮助!

rss android android-widget android-layout

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

显示带有四个按钮的对话框

hy!我正在使用对话框.我想在该对话框中有四个按钮.我添加了三个按钮,一个是
myDialog.setPositiveButton("删除",新的DialogInterface.OnClickListener() 第二个是
myDialog.setNegativeButton("取消",新的DialogInterface.OnClickListener() ,第三个是 myDialog.setNeutralButton("添加",新的DialogInterface.OnClickListener(),但我无法添加第四个,因为我尝试了一个setPositiveButton,但它只显示一个.how我可以添加第四个PLZ给我提示.

谢谢.

android android-widget android-layout

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

阻止 Android 中的搜索栏点击

我正在使用搜索栏。我只想通过移动拇指来控制它。

如何禁用对 ProgressDrawable 的点击?

我尝试过android:clickable="false",但没有成功。

我在 XML 中寻找条形码

      <SeekBar
        android:id="@+id/myseek"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:maxHeight="500dp"
        android:minHeight="50dp"
        android:paddingBottom="30dp"
        android:progressDrawable="@drawable/progress_left"
        android:thumb="@drawable/left_unlocker_bkg" >
    </SeekBar>
Run Code Online (Sandbox Code Playgroud)

我的 onSeekChangedListner 的 Seekbar 代码

unlockSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                    @Override
                    public void onStopTrackingTouch(SeekBar seekBar) {
                        toastText.setVisibility(View.GONE);
                        seekBar.setProgress(0);
                    }

                    @Override
                    public void onStartTrackingTouch(SeekBar seekBar) {

                        if (seekBar.getProgress() < 10) {
                            seekBar.setProgress(0);
                        }
                        toastText.setVisibility(View.VISIBLE);
                        toastText.setText("Slide to Unclock");
                    }

                    @Override
                    public void onProgressChanged(SeekBar seekBar,
                            int progress, boolean fromUser) {

                        if (progress == 100) {
                            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                            v.vibrate(100);
                            finish(); …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-seek

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

为什么我的 AppWidgetProvider 的 onReceive 中的这些状态变量为 null?

我有分配给 onUpdate 的变量,需要访问我的应用程序小部件提供程序类的 onReceive 的值。

public class MyWidgetProvider extends AppWidgetProvider {
    private static String name;
    private static SharedPreferences myPrefs;
    private static final String START_ACTION = "start";

    @Override
    public void onUpdate(final Context context, final AppWidgetManager appWidgetManager,
                               final int[] appWidgetIds) {
        views = new RemoteViews(context.getPackageName(), R.layout.layout_widget);
        Intent intent1 = new Intent(context, MyAppWidgetProvider.class);
        providerIntent.setAction(START_ACTION);
        pendingIntent = PendingIntent.getBroadcast(context, 0, providerIntent, 0);
        ....
        myPrefs = Context.getSharedPreferences("PrefsName", 0x0000);
        name = "new name";
        networkClient.requestItem(name, new JsonHandler {
            @Override
            public void requestSuccess(JSONObject resp) {
                views.setOnClickPendingIntent(R.section, pendingIntent);
            }
    } …
Run Code Online (Sandbox Code Playgroud)

java android android-widget android-appwidget

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

如何通过单击按钮使 TextView 可编辑?

我有一个应用程序,可以显示数据库中的某些内容并允许用户对其进行编辑。我有一个活动在一些文本视图中显示这些详细信息。现在,屏幕底部有一个“编辑”按钮。单击此按钮时,我想让文本视图可编辑(最初是只读的),以便可以更新数据库。另外,我希望“编辑”按钮变成“保存”按钮。我知道我可以使用另一个活动来实现此目的,但是有什么方法可以在同一个活动中执行此操作吗?

android view android-widget android-layout android-xml

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

Android应用小部件实例发送相同的待处理意图

我在使用小部件时看到奇怪的行为。我确信它以前曾起作用,但无论如何现在都没有。不知道我做了什么更改或它是否确实有效。下面的代码创建了我正在尝试做的简化版本。一个应用程序提供一个小部件。当它放在屏幕上时,提示用户输入数字。然后,该编号将显示在窗口小部件上。单击小部件将数字打印到日志中。可以使用不同的编号创建此窗口小部件的多个实例。单击每个将产生一个与为每个小部件选择的编号相对应的日志条目。

但是,我看到某种缓存行为。假设我创建了widget 35。单击3将记录3。单击5将记录3。删除3并单击5将再次记录3。这是如何运作的?看起来第一个窗口小部件已创建并且其视图已缓存?

Manifest.xml

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

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

    <application
        android:name=".AppApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name=".activity.DashboardActivity"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".activity.DummyWidgetConfigActivity"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
            </intent-filter>
        </activity>

        <receiver android:name=".DummyWidgetProvider">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/dummy_widget_info" />
        </receiver>

        <service
            android:name=".service.DummyWidgetService"
            android:exported="false" />

    </application> …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-service android-activity android-pendingintent

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

如何在Android中查找和选择活动日历?

我正在尝试在Android应用程序的日历中实现查找和选择事件.我相信,查找和选择有完全不同的实现.

我在网上搜索无济于事.我很感激你的帮助.

android calendar android-widget android-calendar

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

Listview致命异常:从doInBackground内部调用时,AsyncTask#1

我通过客户端/服务器进行简单的聊天,当我将消息发送到服务器时,它完美地显示了ListView泡泡.但是当我从服务器发送一个并且客户端收到它时,它会尝试执行addItems()并关闭它.我尝试了一切.我知道这是因为我无法从Asynctask更改UI,但我是Android/Java的新手,我不知道DOOOOOOOO是什么!帮助PAYASEEEE !!!!!

***MY LOG CAT** 01-08 18:32:41.023: E/AndroidRuntime(1242): FATAL EXCEPTION: AsyncTask #1
01-08 18:32:41.023: E/AndroidRuntime(1242): java.lang.RuntimeException: An error occured while executing doInBackground()
01-08 18:32:41.023: E/AndroidRuntime(1242):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-08 18:32:41.023: E/AndroidRuntime(1242):     at java.lang.Thread.run(Thread.java:856)
01-08 18:32:41.023: E/AndroidRuntime(1242): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a …
Run Code Online (Sandbox Code Playgroud)

java android android-widget android-listview android-asynctask

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

[Android界面]这是什么?我可以创建它吗?

图片链接

我想创建这个管但我不知道(Methord,类,视图或其他)来创建它.

你能通过链接,方法,其他来回答我吗?

谢谢你的每一个答案

android android-widget android-layout

-3
推荐指数
1
解决办法
57
查看次数