通过Intent方法发送整数

时间:2018-07-24 00:00:44

标签: android listview integer

  

我已经看到了很多使用intent()将数值添加到int整数值的方法。但是,我的工作状况不是很好。有人有建议吗?我正在使用intent()方法通过按钮从一个单独的活动发送一个整数值。按下按钮时,此值应将1加到活动中。这是我到目前为止的内容:

public class GameEmulator extends Activity{

    //Creating two static values to pass strings from SelectPlayer classes
    public final static String value = "EMPTY_VALUE";
    public final static String value2 = "EMPTY_VALUE2";

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


        //Button created to go back to AddPlayer activity
        Button addplayer1 = findViewById(R.id.button9);
       addplayer1.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent i = new Intent(GameEmulator.this, AddPlayer.class);
               startActivity(i);

           }
       });
       Button viewScores = findViewById(R.id.viewScore);
       viewScores.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent = new Intent(GameEmulator.this, MainActivity.class);
               startActivity(intent);
           }
       });

       //Button for player one winning
       Button winButtonOne = findViewById(R.id.button7);
       winButtonOne.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               int scored = 1;
               Intent intent = new Intent(GameEmulator.this, Scoreboard.class);
               intent.putExtra("MY_KEY", scored);
               startActivity(intent);

           }
       });

        TextView textView =  findViewById(R.id.name1);
        TextView textview2 = findViewById(R.id.name2);

        //setting value retrieved from SleectPlayer and Displaying it in textView
        Intent intent = getIntent();
        String extra = intent.getStringExtra(value);
        textView.setText(extra);

        //setting value retrieved from SleectPlayer2 and Displaying it in textView2
        Intent in = getIntent();
        String extra1 = in.getStringExtra(value2);
        textview2.setText(extra1);

    }
}
public class Scoreboard extends Activity{

    public static ArrayAdapter<String> adapter2;
    public static ArrayAdapter<String> adapter3;
    public static ArrayList<String> list2 = new ArrayList<>();
    public static ArrayList<String> list3 = new ArrayList<>();
    ListView selectView3;
    ListView selectView4;
    public static  int losses1 = 0;
    public static  int ties1 = 0;
    public static  int losses2 = 0;
    public static  int ties2 = 0;
    public final static String value2 = "EMPTY_VALUE2";




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


        selectView3 = findViewById(R.id.selectview3);
        selectView3.setVisibility(View.VISIBLE);

        selectView4 = findViewById(R.id.selectview4);
        selectView4.setVisibility(View.VISIBLE);



        //Using adapter for ListView menu
        adapter2 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list2);
        selectView3.setAdapter(adapter2);

        //Using intent to retrieve string from AddPlayer Activity
        Intent i = getIntent();
        int score = getIntent().getIntExtra("MY_KEY", 1);
        String data = i.getStringExtra("text_key");
        if(data != null){
            list2.add("Player 1"+"\n"+"Name: "+data+"\n"+"Wins: "+ score +"\n"+"Losses: "+ losses1+"\n"+"Ties: "+ ties1);
        }
        if(data != ""){
            changeList();
        }

        adapter3 = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list3);
        selectView4.setAdapter(adapter3);
        Intent intent = getIntent();
        String extra= intent.getStringExtra(value2);
        if(extra != null) {
            list3.add("Player 2" + "\n" + "Name: " + extra + "\n" + "Wins: " + score + "\n" + "Losses: " + losses2 + "\n" + "Ties: " + ties2);
        }
        if(data != ""){
            changeList();
        }
    }

    public  void changeList()
    {
        adapter2.notifyDataSetChanged();
    }
}

1 个答案:

答案 0 :(得分:1)

此行:

String data = i.getStringExtra("text_key");

之所以使data = null是因为您没有使用键"text_key"在原始意图中添加了额外的值
所以这段代码:

list2.add("Player 1"+"\n"+"Name: "+data+"\n"+"Wins: "+ score +"\n"+"Losses: "+ losses1+"\n"+"Ties: "+ ties1);

从不执行