如何在创建时或在调用按钮时更改片段中的TextView

时间:2017-02-12 21:14:11

标签: onclick textview fragment settext textedit

我差不多10个小时寻找答案。为什么我的应用程序在启动时崩溃。

我真正想要的是一个函数,当我在Edittext上单击OK时,文本将写在文本视图上。但首先只是设置文本,然后在类中创建扩展片段。

package youtube.demo.youtubedemo.Fragments.Calculator_list;
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import youtube.demo.youtubedemo.R;
public class Calculator_list extends Fragment  {
View view;
    FragmentManager fragmentManager;

public Calculator_list() {
}
TextView Damage1pise;
    EditText Damage1beri;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        view = inflater.inflate(R.layout.fragment_calculator_list, container, false);
     Damage1beri = (EditText) view.findViewById(R.id.Game1_read_dmg_list_Player1);
        Damage1pise = (TextView)view.findViewById(R.id.Game1_writen_dmg_list_Player1);
        Damage1pise.setText("123");
        return view;
    }
    public TextView Returnelement ()
    {
        return  Damage1pise;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {

        Damage1pise = (TextView)getView().findViewById(R.id.Game1_writen_dmg_list_Player1);
        Damage1pise.setText("1234");

        super.onCreate(savedInstanceState);
    }
}

我真正想要的是一个功能,当我在Edittext上单击OK时,文本将写在文本视图上

public void OnButton1click(View v)
{
  Damage1.settext(v.text)    

 // This is hard coded, First I want to set text on create then go on whit the code



}

以下是错误。 E / AndroidRuntime:致命异常:主要                   处理:youtube.demo.youtubedemo,PID:2736                   java.lang.NullPointerException:尝试调用虚方法' android.view.View android.view.View.findViewById(int)'在null对象引用上                       at youtube.demo.youtubedemo.Fragments.Calculator_list.Calculator_list.onCreate(Calculator_list.java:47)                       在android.app.Fragment.performCreate(Fragment.java:2335)                       在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:949)                       在android.app.BackStackRecord.setLastIn(BackStackRecord.java:857)                       在android.app.BackStackRecord.calculateFragments(BackStackRecord.java:897)                       在android.app.BackStackRecord.run(BackStackRecord.java:727)                       在android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578)                       在android.app.FragmentManagerImpl $ 1.run(FragmentManager.java:483)                       在android.os.Handler.handleCallback(Handler.java:751)                       在android.os.Handler.dispatchMessage(Handler.java:95)                       在android.os.Looper.loop(Looper.java:154)                       在android.app.ActivityThread.main(ActivityThread.java:6077)                       at java.lang.reflect.Method.invoke(Native Method)                       在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865)                       在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

1 个答案:

答案 0 :(得分:0)

在您展示的代码的这一行中,两种方法都证明您自己在(TextView)和句子末尾之间有一个空格,如下所示:

Damage1pise = (TextView) getView().findViewById(R.id.Game1_writen_dmg_list_Player1);

另外,请证明自己在调用的布局文件 xml 上有一个文本视图,名称为 Game1_writen_dmg_list_Player1 ,因为错误是由空引用引发的,即:你'重新调用一个未找到的元素(可能,有两个 t s?)。