好了,所以......我一直在試圖影響文本TextView的(因爲它意在顯示文本,對不對?) 但不知到我的理由拒不打印什麼我投入了它。的Android TextView中不會顯示受影響的文本
我的應用程序有兩個活動,MainAcivity,或一個歡迎屏幕,本身和一個GameActivity(該項目是一個Domino遊戲)。
我在GameActivity類的開頭創建了我以前編寫的java對象,然後試圖在TextView中顯示玩家的名字。
Player player1 = new Player("Hulk");
創建一個名爲Hulk的球員,就像你想象的那樣。我有內Player.java方法返回玩家的名字:
player1.getName()
返回字符串「綠巨人」
然後我試圖通過創建一個手柄將其與設定我的TextView的文本綠巨人,第一關:
TextView p1v = (TextView) findViewById(R.textviews.p1view);
然後執行下列操作:
p1v.setText("Player 1 : " + player1.toString());
的p1view定義如下內的game.xml佈局:
<LinearLayout
...
<LinearLayout
...
<TextView
android:id="@+textviews/p1view"
android:text="Board"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
我試過p1view.textAppend,嘗試使用android:editable =「true」。似乎沒有任何工作。
有趣的是,雖然,當我試圖做同樣的事情,內MainActivity,它的工作原理,像這樣: 公共類
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
與main.xml文件中定義的TextView的如下:
<TextView
android:id="@+textviews/mainview_player"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
以下是文件的完整代碼,只是爲了避免這樣的答案:給我們的全部代碼d:
GameActivity.java:
包domino.asd;
import LI260。*;導入android.app.Activity;導入android.os.Bundle; import android.widget.TextView;
公共類GameActivity延伸活動{
private Player player1 = new Player("HULK"); private Player player2 = new Player("CPU"); private Pioche bag = new Pioche(); private Plateau board = new Plateau(); private Game game1 = new Game(bag, board, player1, player2); TextView p1name = null; TextView p2name = null; /** * Called when the activity is first created. * * @param savedInstanceState */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.game); TextView tv = (TextView) findViewById(R.textviews.p1view); tv.setText(player1.getName()); } }
game.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"
android:weightSum="10"
>
<!-- Played layout -->
<LinearLayout
android:id="@+drawable/gameview_Scores"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_gravity="top"
android:layout_weight="2"
android:layout_marginBottom="10px"
android:orientation="horizontal"
android:background="#ff0000"
android:gravity="center"
>
<Button
android:id="@+buttons/exitButton"
android:text="Exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
/>
<Button
android:id="@+buttons/drawButton"
android:text="Draw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+buttons/scoresButton"
android:text="Show scores"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
<!-- Board layout -->
<LinearLayout
android:id="@+textviews/gameview_Table"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_gravity="center"
android:layout_weight="6"
android:layout_marginBottom="10px"
android:background="#ffff00"
>
<TextView
android:id="@+textviews/p1view"
android:text="Board"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
<!-- At hand layout -->
<LinearLayout
android:id="@+drawable/gameview_Playable"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="2"
android:layout_gravity="bottom"
android:background="#ff00ff"
>
<TextView
android:id="@+textviews/gameview_AtHandText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
MainActivity.java:
package domino.asd;
import LI260.*;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
Player p1 = new Player("Hulk");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView p1view = (TextView) findViewById(R.textviews.mainview_player);
p1view.setText(p1.getName());
}
public void btnClick_Name(View view) {
if (view.getId() == R.buttons.B_EnterName) {
EditText playersname = (EditText) findViewById(R.string.playerNameInput);
Toast.makeText(this, "Your name: " + playersname.getText().toString(), Toast.LENGTH_SHORT).show();
}
setContentView(R.layout.game);
}
}
,最後主。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"
android:gravity="center"
>
<EditText
android:id="@+string/playerNameInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:lines="1"
/>
<TextView
android:id="@+textviews/mainview_player"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+buttons/B_EnterName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Save name and start game."
android:onClick="btnClick_Name"
/>
</LinearLayout>
你似乎已經做了所有事情,除了告訴我們什麼是問題。 – Simon 2013-03-08 18:32:08
沒有必要發誓。 – Sam 2013-03-08 18:33:22
問題是,我想在我的GameActivity中顯示player1的名稱,它不會顯示,與MainActivity相反,我不需要它顯示,它確實如此:< – 2013-03-08 18:34:50