有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何根据启动活动的意图更改活动的内容?

我有一个名为“SI with GridView”的活动,其中包含的单位可以在点击时将你带到另一个活动。我想知道如何进入同一个活动,该活动只会根据启动它的意图更改其文本视图

public class SI extends AppCompatActivity {

    GridView gridView;
    String[] units;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zakladnijednotky);
        gridView = (GridView) findViewById(R.id.gridView1);
        units = getResources().getStringArray(R.array.units);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, 安卓.R.layout.simple_list_item_1, units);
        gridView.setAdapter(adapter);
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {

                if (gridView.getItemAtPosition(position).toString().contains("amper")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("kilogram")) {
                    Intent kilintent = new Intent(SI.this, MainActivity.class);
                    startActivity(kilintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("metre")) {
                    Intent metrintent = new Intent(SI.this, MainActivity.class);
                    startActivity(metrintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("second")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("kelvin")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("candela")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("mol")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }

            }
        });
    }
    ...
}

共 (1) 个答案

  1. # 1 楼答案

    您可以在intent中传递一些数据,并在新活动中读取这些数据

    Intent mintent = new Intent(SI.this, MainActivity.class);
    String strName = "kilogram";
    i.putExtra("KEY_NAME_FOR_STRING_I_NEED", strName);
    startActivity(mintent); 
    

    读一读

    Bundle extras = getIntent().getExtras();
    newString= extras.getString("KEY_NAME_FOR_STRING_I_NEED");
    

    或者,另一种方法

    newString= getIntent().getStringExtra("KEY_NAME_FOR_STRING_I_NEED");
    

    并根据新闻字符串中的值更改文本视图

    if(newString.equals("kilogram")) {
        //do something...
    }