Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在数组中包含的字符串中显示用户名_Android_Arrays_String_Android Edittext - Fatal编程技术网

Android 如何在数组中包含的字符串中显示用户名

Android 如何在数组中包含的字符串中显示用户名,android,arrays,string,android-edittext,Android,Arrays,String,Android Edittext,我不知道如何在第二个活动中显示上一个活动的用户名 我已经尝试了很多方法,但是没有一个能让我在字符串中显示用户名 这是主要的活动: private EditText nameField; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

我不知道如何在第二个活动中显示上一个活动的用户名

我已经尝试了很多方法,但是没有一个能让我在字符串中显示用户名

这是主要的活动:

       private EditText nameField;


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

    nameField = findViewById(R.id.nameEditText);
    Button startButton = findViewById(R.id.startButton);
    startButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = nameField.getText().toString();
            getusername(name);
        }
    });

}

private void getusername(String name) {
    Intent intent = new Intent(this, OneShot.class);
    Resources resources = getResources();
    String key = resources.getString(R.string.key_name);
    intent.putExtra(key, name);
    startActivity(intent);
}
 public static final String TAG = OneShot.class.getSimpleName();
private String name;
private int nextSentenceId = 0;

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

    Intent intent = getIntent();
    name = intent.getStringExtra(getString(R.string.key_name));
    if (name == null || name.isEmpty()) {
        name = "Player";
    }
    Log.d(TAG, name);

    final int[] sentences = new int[]{R.string.page0, R.string.page2, R.string.page3, R.string.page4, R.string.page5 };

    Button next= findViewById(R.id.next);
    final TextView displayText= findViewById(R.id.displayText);

    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final int limit = 5;
            if(nextSentenceId < sentences.length){
                displayText.setText(sentences[nextSentenceId]);
                ++nextSentenceId;
            }
        }
    });

}
这是第二项活动:

       private EditText nameField;


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

    nameField = findViewById(R.id.nameEditText);
    Button startButton = findViewById(R.id.startButton);
    startButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = nameField.getText().toString();
            getusername(name);
        }
    });

}

private void getusername(String name) {
    Intent intent = new Intent(this, OneShot.class);
    Resources resources = getResources();
    String key = resources.getString(R.string.key_name);
    intent.putExtra(key, name);
    startActivity(intent);
}
 public static final String TAG = OneShot.class.getSimpleName();
private String name;
private int nextSentenceId = 0;

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

    Intent intent = getIntent();
    name = intent.getStringExtra(getString(R.string.key_name));
    if (name == null || name.isEmpty()) {
        name = "Player";
    }
    Log.d(TAG, name);

    final int[] sentences = new int[]{R.string.page0, R.string.page2, R.string.page3, R.string.page4, R.string.page5 };

    Button next= findViewById(R.id.next);
    final TextView displayText= findViewById(R.id.displayText);

    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final int limit = 5;
            if(nextSentenceId < sentences.length){
                displayText.setText(sentences[nextSentenceId]);
                ++nextSentenceId;
            }
        }
    });

}
公共静态最终字符串标记=OneShot.class.getSimpleName(); 私有字符串名称; 私有int NEXTSENTCEID=0; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_one_shot); Intent=getIntent(); name=intent.getStringExtra(getString(R.string.key_name)); if(name==null | | name.isEmpty()){ name=“Player”; } Log.d(标签、名称); final int[]句=新int[]{R.string.page0,R.string.page2,R.string.page3,R.string.page4,R.string.page5}; 按钮next=findViewById(R.id.next); 最终文本视图显示文本=findViewById(R.id.displayText); next.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 最终整数限值=5; if(nextContenceId<句长){ displayText.setText(句子[nextcontenceid]); ++下一个主题; } } }); } 这些是int[]中的字符串:

     <string name="page0"> Hello %1$s </string>
<string name="page2"> Welcome into this application </string>
<string name="page3"> How are you ? </string>
<string name="page4"> How is the weather </string>
<string name="page5"> Is %1$s you\'re real name ? </string>
您好%1$s
欢迎使用此应用程序
你好吗
天气怎么样
%1$s您是真名吗?

为什么用户名没有在字符串语句中传递?我如何修复它?提前感谢。

您在
int
数组中拥有的不是
字符串
值,而是用于链接到所述
字符串
资源的ID。您可以使用
getResources().getString(R.String.yourstring)
获取与id关联的
String
资源(值)

更改:

  • 将数组中的字符串引导到正确的格式:

    <string name="page0">Hello %s</string>
    <string name="page5">Is %s your real name?</string>