【问题标题】:SetText in a new activity新活动中的 SetText
【发布时间】:2017-06-08 13:37:57
【问题描述】:

我在一个新活动中获得了一个带有字符串的意图,我想在TextView 中显示该字符串,我试图在onCreate 中声明我的TextView,但它崩溃了。我该怎么做才能显示变量"requestbuff"

public class RequestDetail extends MainActivity 
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        Intent intent = getIntent();
        String requestbuff =  intent.getExtras().getString("Requête");
        TextView details = (TextView)findViewById(R.id.detailreq);
        details.setText(requestbuff);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.detail_req);
    }
}

【问题讨论】:

  • 调用超级方法的指令必须在方法体的第一位。还尝试将 setContentView 移动到方法的开头。所以你将在 onCreate 方法中有下一个订单:1)超级 2)setContentView 3)其他任何东西
  • 这里的重点是你不能在setContentView之前使用findViewById,因为视图还没有创建,你没有访问它的组件(在这个例子中是TextView)
  • 非常感谢,真傻啊哈。

标签: java android android-intent textview oncreate


【解决方案1】:

这会很好。将 setContentView 放在方法的开头,以便创建视图。之后你可以使用 findViewById()

public class RequestDetail extends MainActivity 
{
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.detail_req);
    Intent intent = getIntent();
    String requestbuff =  intent.getExtras().getString("Requête");
    TextView details = (TextView)findViewById(R.id.detailreq);
    details.setText(requestbuff);
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2016-02-09
    • 2018-01-19
    相关资源
    最近更新 更多