我想在主屏幕中放置一个textView,我需要选框效果
public class MainWidget extends AppWidgetProvider {
int a;
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
String[] s={"woddfdfdfdfdfdffffffffffffffffffffffffffffffff","dd","ddd","ffff"};
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new WlanTimer(context, appWidgetManager), 100, 50000);
}
private class WlanTimer extends TimerTask {
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
public WlanTimer(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.marketwidget_main);
thisWidget = new ComponentName(context, MainWidget.class);
}
@Override
public void run() {
a=(int) (Math.random()*3);
remoteViews.setTextViewText(R.id.TextView_marketwidget_main_marketmessage,s[a]);
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
}
}
如果我使用s [0]代替s [a],则它不会运行,只显示“woddfdf”。
我的textView xml是:
<TextView android:id="@+id/TextView_marketwidget_main_marketmessage"
android:maxLines="1" android:focusable="true"
android:ellipsize="marquee"
android:inputType="text"
android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:textColor="#ffffff" android:background="@android:color/transparent" android:layout_width="80dip" android:layout_height="20dip"></TextView>
答案 0 :(得分:5)
我从你的问题中得到的是,你想在TextView中显示滚动字幕效果吗? 如果我是对的,请执行以下操作。
在布局文件(XML)的android:ellipsize="marquee"
元素中设置TextView
。然后,在您的活动的onCreate()
方法中,添加第textView.setSelected(true);.
行
注意:将名称textView替换为TextView的名称。
恢复任何查询。
答案 1 :(得分:1)
您可以设置textview的属性android:ellipsize =“marquee”。 并希望此链接可以帮助您,如果使用此属性仍然无法正常工作: Ellipsize not working for textView inside custom listView
答案 2 :(得分:0)
您需要在 xml 文件中添加的最少代码是
<TextView
.
.
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
/>
也不要忘记在您的 onCreate
方法中添加这一行
textview.setSelected(true);