【问题标题】:Create Android TextSwitcher with a dynamically generated Textview使用动态生成的 Textview 创建 Android TextSwitcher
【发布时间】:2011-06-16 14:10:41
【问题描述】:

我打算像这样用TextView 创建一个类似画廊的TextSwitcher

见图片http://img441.imageshack.us/img441/5610/textp.png

当我点击选定的TextView 时,将启动一个活动。

我已经阅读了 Android API 演示和许多其他帖子,但我仍然无法创建这样的东西。 APIdemo 没有告诉我如何使用TextViewTextSwitcher

我相信http://www.java2s.com/Open-Source/Android/android-core/platform-frameworks-base/android/widget/TextSwitcher.java.htm 很有用,但我不知道如何使用它并链接到我的活动onCreate 方法并添加我动态生成的textview

与 XML 内容一起使用的解决方案是什么?

【问题讨论】:

  • 两个链接都坏了。

标签: android text textview gallery switch-statement


【解决方案1】:

我在 API 演示中得到了以下示例 从以下路径

C:\Program Files\Android\android-sdk-windows\samples\android-10\ApiDemos\res\layout

C:\Program Files\Android\android-sdk-windows\samples\android-10\ApiDemos\src\com\example\android\apis\view

TextSwitcher1.java

public class TextSwitcher1 extends Activity implements
   ViewSwitcher.ViewFactory, View.OnClickListener {

   private TextSwitcher mSwitcher;

   private int mCounter = 0;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       setContentView(R.layout.text_switcher_1);

       mSwitcher = (TextSwitcher) findViewById(R.id.switcher);
       mSwitcher.setFactory(this);

       Animation in = AnimationUtils.loadAnimation(this,
               android.R.anim.fade_in);
       Animation out = AnimationUtils.loadAnimation(this,
               android.R.anim.fade_out);
       mSwitcher.setInAnimation(in);
       mSwitcher.setOutAnimation(out);

       Button nextButton = (Button) findViewById(R.id.next);
       nextButton.setOnClickListener(this);

       updateCounter();
   }

   public void onClick(View v) {
       mCounter++;
       updateCounter();
   }

   private void updateCounter() {
       mSwitcher.setText(String.valueOf(mCounter));
   }

   public View makeView() {
       TextView t = new TextView(this);
       t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
       t.setTextSize(36);
       return t;
   }

}

TextSwitcher_1.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button android:id="@+id/next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_switcher_1_next_text" />

    <TextSwitcher android:id="@+id/switcher"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

【讨论】:

  • 是的,我已经阅读了这篇文章,但这并不能回答我打算做什么。如图所示,我有 3 个动态生成的 TextView,我需要使用 TextSwitcher 在 3 个 TextView 之间切换。示例显示的只是计数器的占位符。
  • 嗨@sunil 感谢分享。这对我真的很有帮助。但是我想用当时查看的文本来获取这个文本框上的点击事件。您能否指导我如何实现这一目标。因为文本视图是动态添加的,所以我对如何在点击文本视图时获取其文本感到困惑。
【解决方案2】:

我无法使用动态 TextView 创建 TextSwitcher。

相反,我的替代解决方案是改用 ImageView。这样,我可以创建一个水平滚动的画廊,如链接所示。

【讨论】:

  • 链接似乎已损坏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
相关资源
最近更新 更多