为什么setText不会输出到片段内的字符串?

时间:2014-12-12 19:56:52

标签: android android-fragments fragment android-fragmentactivity settext

在我将c / p代码转换为片段之后,我的函数不会在应用程序中设置字符串。但它起初没有碎片,我无法找到问题。应用程序正常运行,但它不会在屏幕上输出setText字符串,而字符串是可见的,默认字符串

public class MainFragment extends FragmentActivity{

    EditText editNumber;
    Button calculate;
    TextView result;

    int two = 2;
    int seven = 7;
    int inputNumber;

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

        //find elements
        editNumber = (EditText) findViewById(R.id.editNumber);
        calculate = (Button) findViewById(R.id.calculateButton);
        result = (TextView) findViewById(R.id.resultText);

        //listener
        editNumber.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                    inputNumber = Integer.parseInt(editNumber.getText().toString());

              }
        });//onClick

        calculate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                result.setText("Output: " + (inputNumber / two) + seven);
            }
        });//onclick
    }//onCreate
}//main

[代码]

2 个答案:

答案 0 :(得分:0)

FragmentActivity中,您应该定义一个Fragment对象,将其插入Activity's框架并在其中显示内容。请参阅:

http://developer.android.com/guide/components/fragments.html

答案 1 :(得分:0)

您确定MainFragment是片段吗?它扩展了活动:FragmentActivity。如果它只是一个拼写错误问题,那么你必须在片段的onCreateView()方法中提供你的布局。像这样:

@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
    final View v = inflater.inflate(R.layout.activity_main, container, false);
    result = (TextView) v.findViewById(R.id.resultText);
    return v;
}

在onCreateView()之外的其他方法中查找片段中的视图,您可以调用:

getView().findViewById(R.id.resultText);