2

Android RSSリーダーアプリを作成しました。Androidアプリにテキストマーキーがあります。RSSフィードを取得し、RSSタイトルを配列として保存します。この配列をマーキーテキストとして設定します。コードを確認してください。

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" />

ここにスクリーンショット..

ここに画像の説明を入力してください

その「最新ニュース」が見えますか?その私のマーキーテキスト

4

4 に答える 4

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
于 2012-05-09T09:13:11.480 に答える
1

すべてのFlashNewsを動的に作成されたTextViewとして追加できます。そして、これらすべてを1つのHorizo​​ntalScrollViewに入れることができます。そして、リスナーを別々に設定します。

マーキー関数の場合、コード内でプログラムでhorizo​​ntalViewをスクロールできます。

あなたのアイデアでそれを実現できるかどうかはわかりません。(実際にはそれは可能ですが、私が推測する痛みが含まれます)

于 2012-05-08T06:46:58.767 に答える
1

これは、テキストビューを動的に作成し、それらのIDを設定する場合にのみ可能になると思います。たとえば、ニュースリンクが10個ある場合は、テキストビューを10個使用します。

        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.

それがあなたを助けることができることを願っています...

于 2012-05-08T07:29:35.097 に答える
0

アダプターを使用する場合ListView(必要です)、getItem(int position)関数を使用して特定のアイテムを取得できます。

于 2012-05-08T06:32:18.483 に答える