2011-08-09 84 views
0

首先,我是新來的Android編程,所以我的編碼水平不是太高:p 我有一組卡片類,我想返回值的卡片繪製成文本視圖。ANDROID:點擊按鈕改變TextView

cardValue = "The " + numString + " of " + suitString; 
    return cardValue; 

這是我的甲板類中方法drawCard的結束。 在我virtualDeck班,我創造了這個類的一個實例,

final textdeck deck = new textdeck(); 
     String value = deck.drawCard(); 

我想要做的是建立在virtualDeck類的按鈕時,一旦點擊運行從textDeck類的drawcard方法,並將結果返回到textView。每次單擊該按鈕時,都將textView更改爲打印新值。

我似乎很想知道如何做到這一點。 任何幫助,非常感謝。 乾杯。

+0

你能更具體嗎?您在創建按鈕,設置新文本還是兩者時遇到困難?你試過什麼了? –

+0

目前在我的應用程序中,所有我需要的按鈕是鏈接到其他頁面,所以創建一個按鈕來運行一個方法,我試過 ImageButton DrawCard =(ImageButton)findViewById(R.id.drawcard);DrawCard.setOnClickListener(new android.widget.Button.OnClickListener(){ public void onClick(View v){ deck。的drawcard(); }}); 它主要從一個Java類獲取返回語句到另一個活動類文本視圖,我不確定如何做。 讓我知道如何在需要的時候希望我更具體。 :) – WirelessToy

回答

0

我希望如何建立一個TextView幫助這個例子:

在你的main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/card"/> 
</LinearLayout> 

在信號源(TextViewExample.java)

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 


public class TextViewExample extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //Do all your deck setup here 
     String value = "8 of Spades"; 

     //New textView 
     TextView cardDisplay = (TextView)findViewById(R.id.card); 

     //Update Text 
     cardDisplay.setText(value); 

    } 
} 
+0

'findControlById(R.id.card)'可能會返回null,因此您必須檢查'if(cardDisplay!= null){...}'以避免應用程序崩潰。 – Im0rtality

+0

你的意思是findViewById? cardDisplay永遠不會爲null,因爲它在main.xml文件中聲明,並且它的int在自動生成的R.Java文件中可用。我不確定我明白。 –

+0

我一開始就這麼認爲,但那是我崩潰的原因。有清除和重建項目。 – Im0rtality

0

我不不太明白你想做什麼,但這是你如何通過按鈕改變視圖:

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

下一步是在當前佈局中創建的按鈕。 然後在onclick監聽器:

Intent intent = new Intent(this,SecondIntent.class);         
    startActivity(intent); 
    finish(); 

和SecondIntent是你所呼叫的第二類的名稱。該類可以有自己的視圖,因爲它可以調用setContentView()。

的唯一的事情是要確保你打開AndroidManifest.xml中並添加標籤

<activity android:name=".SecondIntent" android:label="@string/app_name"> </activity>

並稱,該清單將讓機器人知道其他活動存在以下。

現在,如果您想打開第二個視圖,並且能夠關閉第二個視圖以返回到第一個視圖,則只需將finish()添加到第二個活動,而不是第一個。

祝你好運! -A Fellow Android Noob