就像标题一样。我有一个小的可绘制文件,但 ImageView 比它大得多。如何在不留任何额外空间的情况下填充它?提前致谢。
我想在 OnClickListener 而不是 onlongclicklistener 上使用 android 选择文本功能。有没有办法做到这一点?有人可以帮我解决这个问题吗?谢谢
可能的重复:
如何从 android 主屏幕小部件启动活动
从应用程序主屏幕小部件启动活动的最简单代码是什么?
到目前为止,我的代码不起作用,LogCat 中没有显示任何内容 ..??
小部件中有一个图像,当点击图像时,应该启动应用程序。寻找一个片段。
public class MyWidget extends AppWidgetProvider
{
// Create an Intent to launch activity from ImageView
@Override
public void onEnabled(Context context)
{
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName comp = new ComponentName(context.getPackageName(),MyWidget.class.getName());
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent myPI = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.content);//<-THE LAYOUT W/I THE MainActivity CLASS??
views.setOnClickPendingIntent(R.id.widgetLauncher, myPI);//<-THE IMAGEVIEW ID??
AppWidgetManager mgr = AppWidgetManager.getInstance(context);
mgr.updateAppWidget(comp, views);
}
}
Run Code Online (Sandbox Code Playgroud)
小部件布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" …Run Code Online (Sandbox Code Playgroud) 我的LogCat显示NullPointerException,无论我作为主要活动运行哪个代码.我在相同或不同项目中尝试的所有活动都发生了同样的异常.
主要活动
public class MainActivity extends Activity implements View.OnClickListener{
private static EditText et;
private static Button b;
private static TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
et=(EditText)findViewById(R.id.editText1);
Button b=(Button)findViewById(R.id.button1);
TextView tv=(TextView)findViewById(R.id.textView1);
b.setOnClickListener(this);
setContentView(R.layout.activity_main);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tv.setText(et.getText());
}
}
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中
<RelativeLayout 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: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=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="73dp"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" …Run Code Online (Sandbox Code Playgroud) android nullpointerexception android-widget android-activity
资源:
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
String s = "MusicPlayer";
if (MusicPlayerActivity.currentActivity != null) {
s = MusicPlayerActivity.currentActivity.getCurrentTrackName();
} else {
Log.d(MusicPlayerActivity.TAG,"STARTING ACTIVITY FROM WIDGET");
Intent intent1 = new Intent(context, MusicPlayerActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
// I WANT TO UPDATE TEXT VIEW HERE
if (MusicPlayerActivity.currentActivity != null)
if (intent.getAction().equals(ACTION_WIDGET_NEXT)) {
MusicPlayerActivity.currentActivity.playNext();
} else if (intent.getAction().equals(ACTION_WIDGET_PLAY)) {
MusicPlayerActivity.currentActivity.playPause();
} else if (intent.getAction().equals(ACTION_WIDGET_PREV)) {
MusicPlayerActivity.currentActivity.playPrevious();
}
}
Run Code Online (Sandbox Code Playgroud)
我用这段代码试了一下:
Log.d(MusicPlayerActivity.TAG,s);
remoteViews.setTextViewText(R.id.w_trackInfo, s);
appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.w_trackInfo);
Run Code Online (Sandbox Code Playgroud)
但如果我把它放在评论位置,这不起作用.任何帮助赞赏.
我在 Java 和 C# 方面有很多经验,但我是 Android 新手。我主要使用 C#,因为我很喜欢 Control 层次结构。我喜欢本体的即插即用。我正在尝试理解这个新范式中的本体,但我可能得到了一些虚假信息。
对于应用程序,这应该是最大的组成部分。在应用程序内,可能有多个活动。一个活动可以显示多个 Fragment。AppWidgets 似乎是一种特殊情况,因为它们作为 App 的一个组件存在,但会单独显示。有人告诉我,你可以扩展 Buttons 或 ProgressBar 来创建你自己的组件,这些组件又被称为 Widgets。
正如我所说,我可能完全错了。理想情况下,我想创建自己的小部件,我可以将其放在 Fragment、AppWidget 或 Activity 上;我可以将其中的任何一个组合成一个应用程序。我发现的所有在线资源都只在 AppWidget 的意义上讨论 Widget?我提供的信息不正确吗?任何人都可以澄清本体论吗?谢谢
无法让 TextView 文本自动调整大小以在应用程序小部件中工作。
自动调整大小在 Android Studio 的预览中显示良好,但在实际的小部件上不起作用。
自动调整大小不应该在小部件或其他东西中工作吗?
我的文本视图:
<TextView
android:text="test"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/widget_text"
android:gravity="center"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
android:textColor="#ddd"
app:autoSizeTextType="uniform"
app:autoSizeMaxTextSize="200dp"
app:autoSizeMinTextSize="12dp"/>
Run Code Online (Sandbox Code Playgroud) 我已经用 ConfigurationActivity 构建了一个小部件。一切都很好,但问题是我无法在创建后重新配置它并更改其设置。其他小部件(如天气应用程序或日历应用程序)在您长按它们时会提供一个选项(与“从家里删除”和“应用程序信息”一起),即打开其 ConfigurationActivity 的“小部件设置”。我怎样才能添加这个选项?在下面的屏幕截图中,我的应用程序中缺少“小部件设置”选项。
我有一个非常标准的Android小部件,它启动它的配置活动,你可以在其中设置几个选项.
现在,在设置完成后我该怎么办.因为当我按下后面或主页按钮时,小部件不在那里.