textView选框

时间:2010-12-02 07:48:03

标签: android android-widget

我想在主屏幕中放置一个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>

3 个答案:

答案 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);