簡體   English   中英

如何在SecondActivity onItemClick中設置文本

[英]How to setText in SecondActivity onItemClick

單擊項目時,我需要在SecondActivity中設置setText,但是文本必須根據項目而有所不同。 單擊項目時出現錯誤,但它不起作用。 你能告訴我如何將Text從First Activity設置為Second?

第一次活動:

final String[] setP = { "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9" };

final ListAdapter theAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, setP);
final ListView theListView = (ListView) findViewById(R.id.theListView2);
theListView.setAdapter(theAdapter);

theListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        String itemPicked = "Selected: " + String.valueOf(adapterView.getItemAtPosition(position));
        Toast.makeText(MainActivity.this, itemPicked, Toast.LENGTH_SHORT).show();

        Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
        intent.putExtra("newsId", "1");
        MainActivity.this.startActivity(intent);


        String chosen = String.valueOf(adapterView.getItemAtPosition(position));

        if (chosen == "P1") { // doesn't work
            SecondActivity.displayR.setText("EXAMPLE FOR P1");
        } else if (chosen.equals("P2")) { // doesn't work
            SecondActivity.displayR.setText("EXAMPLE FOR P2");
        }
    }
});

和SecondActivity:

public static TextView displayR;

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

    displayR = (TextView) findViewById(R.id.textR);
}

您需要將所選項目的名稱放入Intent,並在Intent的第二個活動中獲得其名稱,如下所示:

第一次活動

theListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        String itemPicked = "Selected: " + String.valueOf(adapterView.getItemAtPosition(position));
        Toast.makeText(MainActivity.this, itemPicked, Toast.LENGTH_SHORT).show();

        Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
        intent.putExtra("newsId", "1");


        String chosen = String.valueOf(adapterView.getItemAtPosition(position));

        if (chosen == "P1") { // doesn't work
            intent.putExtra("name", "p1");
        } else if (chosen.equals("P2")) { // doesn't work
            intent.putExtra("name", "p2");
        }

        MainActivity.this.startActivity(intent);
    }
});  

第二項活動

public static TextView displayR;

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

    displayR = (TextView) findViewById(R.id.textR);
    String name = getIntent().getStringExtra("name");
    displayR.setText(name);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM