Java 带有edittext的自定义ListView,可在切换活动时保存信息

Java 带有edittext的自定义ListView,可在切换活动时保存信息,java,android,listview,android-listview,Java,Android,Listview,Android Listview,我正在做一个游戏,要求玩家在每一轮结束后保持得分。我已经有了一个自定义的Listview,用户可以在其中输入自己的名字。我不知道该怎么做,就是在ListView中加入一个edittext字段,这样名字就可以与玩家所指的线匹配 我在SO和YouTube上都搜索了一些想法和教程,但似乎没有任何效果或意义 我也有一个问题,我的名字保存时,我切换活动,这是不好的,因为输入您的名字后,每一轮根本做不到 据我所知,ListView并不容易使用,但如果没有它们,你就不可能真正拥有一个应用程序。国际海事组织 这

我正在做一个游戏,要求玩家在每一轮结束后保持得分。我已经有了一个自定义的Listview,用户可以在其中输入自己的名字。我不知道该怎么做,就是在ListView中加入一个edittext字段,这样名字就可以与玩家所指的线匹配

我在SO和YouTube上都搜索了一些想法和教程,但似乎没有任何效果或意义

我也有一个问题,我的名字保存时,我切换活动,这是不好的,因为输入您的名字后,每一轮根本做不到

据我所知,ListView并不容易使用,但如果没有它们,你就不可能真正拥有一个应用程序。国际海事组织

这就是我到目前为止所拥有的,请原谅我,如果这不是我所期望的,这是我第一次在这里发布代码

这是我的xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/addItem"
        android:hint="Type a Players Name" />

    <Button
        android:id="@+id/addItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Add Player" />

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/addItem"
        android:layout_above="@+id/newround"
        android:layout_toStartOf="@+id/addItem"
        android:layout_alignRight="@+id/addItem"
        android:layout_alignEnd="@+id/addItem">
    </ListView>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText3"
        android:layout_below="@+id/addItem"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:inputType="number"
        android:layout_alignLeft="@+id/addItem"
        android:layout_alignStart="@+id/addItem" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:id="@+id/newround"
        android:text="Next Round"
        android:textSize="25sp"
        android:onClick="OpenHomePage"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText2"
        android:inputType="number"
        android:layout_below="@+id/editText3"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignLeft="@+id/editText3"
        android:layout_alignStart="@+id/editText3" />
这是我的java类

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;


import java.util.ArrayList;

public class ScoreBoard extends Activity {

    EditText editText;
    Button addButton;
    ListView listView;
    ArrayList<String> listItems;
    ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.score_board);
        editText = (EditText) findViewById(R.id.editText);
        addButton = (Button) findViewById(R.id.addItem);
        listView = (ListView) findViewById(R.id.listView);
        listItems = new ArrayList<String>();
        adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, listItems);
        listView.setAdapter(adapter);
        addButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                listItems.add(editText.getText().toString());
                adapter.notifyDataSetChanged();
            }
        });

    }

    public void OpenHomePage(View view) {
        Intent homePage = new Intent(this,MainActivity.class);
        startActivity(homePage);
    }
}

我知道这没什么好处理的,但是如果您对这两件事有任何意见,都将不胜感激。

您需要将listview项数组保存到SharedReferences中,然后在下一个活动中加载并显示它

保存数组

加载阵列

Sherif elKhatib保存和加载的信用

public boolean saveArray(String[] array, String arrayName, Context mContext) {   
    SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);  
    SharedPreferences.Editor editor = prefs.edit();  
    editor.putInt(arrayName +"_size", array.length);  
    for(int i=0;i<array.length;i++)  
        editor.putString(arrayName + "_" + i, array[i]);  
    return editor.commit();  
} 
public String[] loadArray(String arrayName, Context mContext) {  
    SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);  
    int size = prefs.getInt(arrayName + "_size", 0);  
    String array[] = new String[size];  
    for(int i=0;i<size;i++)  
        array[i] = prefs.getString(arrayName + "_" + i, null);  
    return array;  
}