【问题标题】:How to send a value from TextView to RecyclerView in another Activity如何在另一个 Activity 中将值从 TextView 发送到 RecyclerView
【发布时间】:2020-11-25 17:16:17
【问题描述】:

我正在尝试将值从 TextView 发送到 RecyclerView(在另一个 Activity 中)。

MainActivity.class 我想在另一个活动中使用 onClickYes 方法将每个单词发送到我的 recyclerView。

public class MainActivity extends AppCompatActivity {
TextView display, progress;
private List<String> worldList;
private ArrayList<RecyclerItems> recyclerItems;
private WordDataBase wordDatabaseForYes;
int counter = 1;
int i = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    display = findViewById(R.id.dispalay);
    progress = findViewById(R.id.progress);
    recyclerItems = new ArrayList<>();
    worldList = new ArrayList<>();
    worldList.add("cat");//i want to display this word firstly
    worldList.add("dog");//it after click
    worldList.add("monkey");//after it
    worldList.add("bird");//after it
    worldList.add("fish");//etc
    worldList.add("home");//etc
    worldList.add("car");//etc
}

public void onClickYes(View view) {
    if (i >= worldList.size()) return;
    display.setText(worldList.get(i));
    progress.setText(counter + "");
    //заполняем наш recyclerView
    //Intent intent  = new Intent(MainActivity.this, YesActivity.class);
    //intent.putExtra("word", user + ", вам передали: " + gift);
    //startActivity(intent);
    i++;
    counter++;
}

public void onClickNo(View view) {
    Toast.makeText(this, "Size is " + worldList.size(), Toast.LENGTH_SHORT).show();
    //recyclerItems.add(new RecyclerItems(worldList.get(i)));
    i = 0;
    counter = 0;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    Intent intent;
    switch (item.getItemId()) {
        case R.id.yes:
            recyclerItems.add(new RecyclerItems(worldList.get(i)));
            intent = new Intent(MainActivity.this, YesActivity.class);
            startActivity(intent);
            break;
        case R.id.no:
            intent = new Intent(MainActivity.this, NoActivity.class);
            startActivity(intent);
            break;
        case R.id.about:
            Toast.makeText(this, "By SaturnPRO", Toast.LENGTH_SHORT).show();
            //openDialogAbout
            break;
    }
    return true;
}

}

我的第二个活动

public class YesActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private RecyclerView.Adapter adapter;
    private RecyclerView.LayoutManager layoutManager;
    ArrayList<RecyclerItems> yesWordList;

    private WordDataBase wordDatabaseForYes;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        yesWordList = new ArrayList<>();
        recyclerView = findViewById(R.id.rvYes);
        recyclerView.setHasFixedSize(true);
        adapter = new RecyclerViewAdapter(yesWordList);
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setAdapter(adapter);
        recyclerView.setLayoutManager(layoutManager);


    }
}

我也有一个适配器,但我不能在这里展示它。

我该怎么做? enter code here请帮忙。

【问题讨论】:

    标签: java android


    【解决方案1】:

    在意图附加中发送单词:

    case R.id.yes:
        recyclerItems.add(new RecyclerItems(worldList.get(i)));
        intent = new Intent(MainActivity.this, YesActivity.class);
        intent.putExtra("key", worldList.get(i));
        startActivity(intent);
        break;
    

    在你的第二个活动中:

    String name = intent.getStringExtra("key");
    

    【讨论】:

      【解决方案2】:

      您可以将wordList 设为静态成员。然后你可以在你的适配器中访问它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        • 2020-01-17
        • 2013-08-14
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多