应用setText方法但活动为空

时间:2017-04-16 14:28:17

标签: java android methods parameters textview

我是Android开发的新手,我正试图将参数从一个方法传递到另一个方法,以便最终在我的活动中包含文本,但是当我运行应用程序时,它似乎是空白的。

这是我的Java代码:

package com.example.bhroo.bhrawiijava;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

import static android.R.id.message;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }

    public int calculatePrice() {
        int lamia = 5;
        int newQuantity = lamia * 3;
       priceMessage(newQuantity);
        return newQuantity;
    }

    public String priceMessage(int aly) {
        String message = "el order haiib2a be " + aly;
        displayText(message);
        return message;
    }

    public void displayText(String kimo) {
        TextView orderSummaryTextView = (TextView) findViewById(R.id.ahmed);
        orderSummaryTextView.setText(kimo);
    }


}

这是我的XML

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.bhroo.bhrawiijava.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:id="@+id/ahmed"
        android:layout_height="wrap_content"
         />
</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

更改您的onCreate - 方法,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    int price = calculatePrice(); 
    priceMessage(price);

}

答案 1 :(得分:0)

你必须从你想要的方法调用你的方法,如果你想要你可以从onCreate调用它,只需将它添加到你的onCreate方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //Add this
    calculatePrice();
}

我的英语太糟糕了,我很抱歉。

答案 2 :(得分:0)

您没有对要使用的方法进行任何调用。在OnCreate()拨打calculatePrice();

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         calculatePrice();

    }