我已在窗口小部件中成功实现了EditText。使用以下代码。
<TextView
android:id="@+id/edit_widget"
style="@android:style/Widget.EditText"
android:layout_width="150dp"
android:layout_height="29dp"
android:layout_margin="5dp"
android:hint="Enter Name"
android:inputType="number"
android:nextFocusDown="@+id/btnSave"
android:paddingLeft="5dp"
android:textSize="15sp" >
</TextView>
<Button
android:id="@+id/widget_button"
style="@style/normal_button_gray"
android:layout_width="74dp"
android:layout_height="29dp"
android:layout_margin="4dp"
android:gravity="center"
android:minHeight="0dp"
android:minWidth="0dp"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:text="@string/label_Add"
android:textColorHint="@color/dark_gray"
android:textSize="14sp" />
以下代码使用带有BroadcastReceiver
的A类RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_demo);
remoteViews.setTextViewText(R.id.ed_expersivecost, "");
remoteViews.setTextViewText(R.id.txt_appname,context.getString(R.string.app_name));
remoteViews.setOnClickPendingIntent(R.id.widget_button, MyWidgetProvider.buildButtonPendingIntent(context));
以下代码使用B类消费AppWidgetProvider
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_demo);
remoteViews.setOnClickPendingIntent(R.id.widget_button, buildButtonPendingIntent(context));
//how to get edittext value in here
}
public static PendingIntent buildButtonPendingIntent(Context context) {
Intent intent = new Intent();
intent.setAction("com.connectingpixles.intent.action.Addamount");
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
但不知道如何从EditBox Widget获取文本。我可以帮忙吗?
答案 0 :(得分:4)
无法在Home-Widget上添加编辑框。我打算在点击Home Widget时打开新的Dialog(弹出窗口),如Edit-box Widget位置。
以下方法用于获取Home小部件的点击事件
public class MyWidgetProvider extends AppWidgetProvider {
public static Intent intentForWidget(int appWidgetId, String specificIntent) {
//action to perform
}
@Override
public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds) {
// modify after take action
}
@Override
public void onReceive(Context context, Intent intent) {
//There has called Pop-up window activity
}
}
这个答案可以帮到你!!!!喜欢这个。
答案 1 :(得分:-3)
当您说EditBox时,我假设您正在寻找EditText小部件。
EditText ed = (EditText) view.findViewById(R.id.your_edit_text_id);
String text = ed.getText();
答案 2 :(得分:-3)
这是您正在寻找的代码片段。复制粘贴应适用于此XML。
TextView tv = (TextView) view.findViewById(R.id.edit_widget);
String text = tv.getText().toString();
PS:如果您在活动中执行此操作,则view.findViewById
会变为findViewById
更新1:
OP,您仍然没有提供适当的信息。 AppWidgetManager是什么类的?无论如何,我会捅这个。
您可以在TextView
中存储对Application Class
的引用。将TextView
添加到RemoveViews
时,您可以更新此引用。使用此参考来获取TextView
。
另一种方法是使用temp String
变量并在updateTextString
中创建class A
方法来更新temp String
。并使用temp String