我创建了一个Android RSS阅读器App.I我的android app.Iam获取RSS提要并将RSS标题存储为数组。我将此数组设置为marque text.Check代码,
String MarqueeStr="";
TextView flashnews;
for (int i = 0; i < nl.getLength(); i++) {
MarqueeStr = MarqueeStr +" | "+ Headlines.Title[i];
}
flashnews.setText(MarqueeStr);
现在我必须为我的选框设置一个onclick监听器,以便用户可以查看他们被点击的标题的详细描述。我知道如何设置它。但我的问题是,如何获得点击的数组索引用户单击选取框时,在选取框文本中的字符串?
这是我的XML布局,
<TextView
android:id="@+id/flashs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:lines="1"
android:ellipsize="marquee"
android:layout_marginLeft="70dp"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="#e7e7e7" />
屏幕截图..
你能看到“最新消息”吗?它是我的字幕文本
答案 0 :(得分:1)
您可以将每个FlashNews添加为动态创建的TextView。你可以把所有这些都放进去 一个HorizontalScrollView。并将他们的听众分开。
对于选取框功能,您可以在代码中以编程方式滚动horizontalView。
我不知道是否可以用你的想法来实现它。 (实际上它可以完成,但我猜它会包含疼痛)
答案 1 :(得分:1)
我认为只有动态创建文本视图并为其设置ID才能实现。就像你有10个新闻链接然后使用10个textviews
TextView txt = null;
View.OnClickListener marquee_click = new View.OnClickListener() {
@Override
public void onClick(View v) {
int selected_item = v.getTag();
switch (selected_item) {
case 0:
break;
case 1:
break;
case 2:
break;
default:
break;
}
}
};
LinearLayout news_text_layout = new LinearLayout(getApplicationContext());
news_text_layout.setOrientation(LinearLayout.HORIZONTAL);
for (int i = 0; i < 10; i++) {
txt = new TextView(getApplicationContext());
txt.setTag(i); // OR txt.setId(i);
txt.setText("new " + i);
txt.setOnClickListener(marquee_click);
news_text_layout.addView(txt);
}
// ADD YOUR LINEAR LAYOUT ON WHICH YOU HAVE ADDED ALL TEXT VIEW IN YOUR LISTVIEW FOOTER.
// NOW PERFORM SAME ANIMATION OR TRICK ON LINEAR LAYOUT WHICH YOU WERE PERFORMING ON marquee text.
希望它可以帮助你...
答案 2 :(得分:1)
对于动画看看我刚刚创建的。 创建新项目,然后添加我给的类和xml文件。
public class Test_stflowActivity extends Activity {
LinearLayout ll = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final LinearLayout ll = (LinearLayout) findViewById(R.id.linearLayout1);
final TranslateAnimation ts = new TranslateAnimation(200, -100, 0, 0);
ll.setAnimation(ts);
ts.setDuration(5000);
TextView tv = new TextView(getApplicationContext());
tv.setText("*bharat sharma*");
tv.setTextSize(30);
ll.addView(tv);
ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ll.startAnimation(ts);
}
});
}
}
这是xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true" >
</LinearLayout>
</RelativeLayout>
it is working for me
答案 3 :(得分:0)
如果您使用带有适配器的ListView
(您应该使用),则可以使用getItem(int position)
函数来获取特定项目。