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



我在理解如何在Android中组织我的用户界面时遇到了问题。我原来的计划是创建TextViews和ListViews编程和改变他们时,按钮点击等。

这是我的第一个简单的尝试。viewFriends是Activity类中的一个方法。当菜单按钮被按下时调用。
    private void viewFriends()
{
    mText = new TextView(this);
    mText.setText("Gathering information...");
    setContentView(mText);

后面跟着不相关的代码

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

谢谢。

最好的工作是在您的XML文件中拥有这些listviews和textviews,并给它们一个合适的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的对象,现在你可以对它做任何你想做的事情。

:)

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

不要在你的方法中使用setContentView。通常它应该只在你的活动的onCreate方法中调用一次。最好在xml中预定义你的按钮/TextViews,得到一个处理它们(findViewbyId…)然后修改它们

如果您以编程方式创建它们,只需从xml中将它们添加到视图容器中。如:

setContentView(R.layout.main);

假设在main.xml中有一个id为: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! :)

仔细检查你在"this"中得到了什么。将其更改为Java文件名。this

你必须重新加载/刷新你的活动,一旦你改变它。

试试这个

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

相关内容

  • 没有找到相关文章

最新更新