【问题标题】:how to click on textview in android如何在android中点击textview
【发布时间】:2012-11-09 08:49:03
【问题描述】:

单击文本视图不起作用

我的xml是

<TextView
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="5dp"
android:layout_weight="3"
android:gravity="center" 
android:textColor="@color/white"
android:text="click to download sevenstepstocollege"
android:textSize="15dp"
android:onClick="downloadLink"
android:clickable="true">
</TextView>

我的活动代码是

public void downloadLink(View v)
{
//String requestId = PurchasingManager.initiatePurchaseRequest(skuKye);
//String requestId=PurchasingManager.initiateItemDataRequest("DeveloperSKU-1234");
skuSet.add(skuKye);
final String requestId = PurchasingManager.initiateItemDataRequest(skuSet);
}  

但它不起作用。我无法点击该链接。请指导我

【问题讨论】:

  • 我正在使用亚马逊应用程序和我当前的应用程序。在文本视图中,文本是“单击此处转到七个简单步骤”
  • 请在声明 downloadLink() 函数的地方发布所有 Java 代码!
  • 我正在使用相同的页面,但它不工作:(
  • 如何在评论中发布代码??

标签: android xml android-widget textview


【解决方案1】:

好吧,我使用以下代码使 TextView 可点击。

首先,在你的activity.xml中添加这个,让TextView可以点击:

<TextView
    android:id=android:id="@+id/button2" <!-- id to get this TextView -->
    (...)
    android:onClick="onClick"  <!-- Add the function onClick() -->
    android:clickable="true"   <!-- Set the boolean clickable to true -->
/>

然后,在 MainActivity.java 中添加:

private TextView textview;    

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);    
    setContentView(R.layout.activity_main);  

    // Get the TextView by id
    textview = (TextView) findViewById(R.id.button2);

    textview.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
              // TODO when clicked on your link(TextView)
        }
    });
}


正如我现在看到的那样,您正在尝试从 TextView 中创建一个可点击的链接,而不仅仅是能够点击 TextView,我将在下面提供一个链接,指向 Stack Overflow 中解决的类似问题,您可能会觉得有帮助。


android开发者参考TextView:
https://developer.android.com/reference/android/widget/TextView.html

Stack Overflow 中关于如何在可点击中创建链接的类似问题可能会有所帮助:
How do I make links in a TextView clickable?

【讨论】:

    【解决方案2】:

    你可以这样使用

    <TextView
                                android:id="@+id/topPaid"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:autoLink="all"
                                android:clickable="true"                           
                                android:text="@string/topPaid"
                                android:textColor="#000000"
                                android:textColorLink="#33CC33" />
    

    在活动中

    TextView topPaid = (TextView) findViewById(R.id.topPaid);
    
    Linkify.addLinks(topPaid, Linkify.ALL);
    
    topPaid.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
    
    //write ur logic
    }
    }
    

    【讨论】:

    • Linkify.addLinks(topPaid, Linkify.ALL); topPaid.setMovementMethod(LinkMovementMethod.getInstance()); // t1.setClickable(true); topPaid.setOnClickListener(new View.OnClickListener() { //你的逻辑} });
    【解决方案3】:
    TextView textview = (TextView) findViewById(R.id.text);
    textview.setText(Html.fromHtml("<b>Text:</b>  Text with a " + "<a href=\"http://www.google.com\">link</a> " + "Created in the Java source code using HTML."));
    

    【讨论】:

    • 我没有使用直接重定向网站,因为我在我的应用程序中使用了亚马逊应用程序,并且我完成了该部分的编码..但问题是我无法点击按钮
    • 我调用amazone api从用户那里买书
    • 我有一个文本视图,每当我点击该文本视图时,我都会调用与我的应用程序集成的亚马逊应用程序,使用此应用程序的人可以选择直接购买这本书,无需直接访问amezone网站。
    • 我在 xml 中有这段代码。
    • 我必须调用这个方法 public void downloadLink(View v) { //String requestId = PurchasingManager.initiatePurchaseRequest(skuKye); //String requestId=PurchasingManager.initiateItemDataRequest("DeveloperSKU-1234"); skuSet.add(skuKye);最终字符串 requestId = PurchasingManager.initiateItemDataRequest(skuSet); }
    【解决方案4】:

    XML 代码

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

    JAVA代码

        TextView textView = (TextView) findViewById(R.id.textView1);
        textView.setText(Html.fromHtml("<a href=\"http://www.google.com\">google</a> "));
        textView.setMovementMethod(LinkMovementMethod.getInstance());
    

    【讨论】:

    • 是的,我这样做了,但它是直接转到网站的,但我没有使用直接重定向网站,因为我在我的应用程序中使用了亚马逊应用程序,并且我完成了那部分的编码..但问题是我无法点击按钮
    • 我无法理解你想用 textview 做什么。所以请添加你的代码以便更好地理解
    • 我有一个文本视图,每当我点击该文本视图时,我都会调用与我的应用程序集成的亚马逊应用程序,使用此应用程序的人可以选择直接购买这本书,无需直接访问amezone网站。
    • // 你可以试试这个 TextView textView = (TextView) findViewById(R.id.textView1); textView.setText(Html.fromHtml("google.com\">google ")); Linkify.addLinks(textView, Linkify.ALL); textView.setOnClickListener(new OnClickListener() { public void onClick(View v) { //ur code } });
    【解决方案5】:

    在您的 XML 中如下:

     <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:onClick="onTextViewPressed"
       />
    

    在您附加的活动中 公共无效 onTextViewPressed(查看视图){ ... }

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2012-09-07
      • 1970-01-01
      相关资源
      最近更新 更多