设计Android用户界面:Textview文本不会更改

时间:2011-04-26 07:20:15

标签: android user-interface textview

我在理解如何在Android中组织用户界面时遇到问题。我最初的计划是以编程方式创建TextViews和ListViews,并在单击按钮时更改它们等。

这是我的第一次简单尝试。 viewFriends是我的Activity类中的一个方法。按下菜单按钮时会调用它。

    private void viewFriends()
{
    mText = new TextView(this);
    mText.setText("Gathering information...");
    setContentView(mText);

......无关紧要的代码如下

为什么这个看似简单的例子不起作用?我应该如何在逻辑上组织和管理我的用户界面对象(TextViews,ListViews,Buttons等)。

感谢。

4 个答案:

答案 0 :(得分:1)

最好的工作是在XML文件中提供这些列表视图和文本视图,并为它们提供合适的ID,如下所示:

    <ListView       
        android:id="@+id/myList"
            android:layout_width="wrap_content"
            android:layout_weight="1"
    />

就像上面的XML文件中的文本视图一样,添加android:id属性。 一旦在java文件中定义了这种方式,就会引用它们:

ListView myListObj = (ListView)findViewById(R.id.myList);

现在你的java文件中有一个名为myListObj的对象,现在你可以做任何你想做的事了。

:)

如果您在此发现任何问题,请告诉我,以便我可以更新答案以满足您的特定需求。

答案 1 :(得分:0)

仔细检查“this”中的内容。  将其更改为您的java文件name.this

答案 2 :(得分:0)

不要在你的方法中使用setContentView。通常它只应在您的活动的onCreate方法中调用一次。 最好用xml预定义你的Bottons / TextViews,得到它们的句柄(findViewbyId ...) 并以这种方式修改它们。

如果以编程方式创建它们,只需将它们添加到xml的视图包含中即可。 喜欢:

setContentView(R.layout.main);

让我们在main.xml中说有一个名为root的LinearLayout。

// get accces to that layout:
LinearLayout rootLayout = (LinearLayout) findViewById (R.id.root);

// create a new TextView
TextView tv1 = new TextView (this);
tv.setText("Hello!");
// add it to your base layout
rootLayout.addView(tv1);

// done! :)

答案 3 :(得分:0)

更改后,您必须重新加载/刷新活动。

试试这个

@Override
    protected void onResume() {

        if(param.equalsIgnoreCase("gr"))
        {
        finish();
        Intent myIntent = new Intent(yourActivity.this, yourActivity.class);
        startActivity(myIntent);
    }