【问题标题】:android: How to create new Activity with a different name with a click of a button?android:如何通过单击按钮创建具有不同名称的新活动?
【发布时间】:2014-07-08 15:46:30
【问题描述】:

我有一个带有 ListView EditText 和一个按钮的 Activity。我正在努力做的是在使用 EditText 的上下文向 ListView 添加新项目时,我想让该新项目能够点击并引导我到一个具有已构建 UI 的新 Activity。

  1. 除了具有三个视图的第一个 Activity 之外,我已经有了第二个 Activity,我每次按下第一个 Activity 中的按钮时都想重新创建它。
  2. 我使用 ArrayList 和 ArrayAdapter 将新项目添加到 ListView,但不知道如何使新项目可以点击,并让它们通过我创建的第二个 Activity 的 UI 将我引导至新 Activity。李>

编辑: 基本上我想要做的是一种联系人列表,我想不通的是,当你点击 New for New Contact 时,它会弹出一个窗口,其中包含要填写的字段,然后(在用户确认后)它将新联系人添加到所有联系人的 ListView 中,当按下联系人姓名时,它会打开一个包含联系人信息的新窗口。

【问题讨论】:

  • 为什么要创建一个新活动?您的意思是要使用特定于单击的 listItem 的新条件启动第二个活动?
  • 是的。我编辑了我的信息,所以请检查一下,以更好地了解我想要做什么。我曾想过将第二个类设为自定义视图而不是 Activity,但有人告诉我这样做行不通。

标签: android listview android-activity


【解决方案1】:

添加这个:

ArrayList<String> names = new ArrayList<>(); //dummy data
ArrayList<String> tels = new ArrayList<>(); //dummy data
names.add("peter");  //dummy data
tels.add("12334567"); //dummy data
names.add("mary");  //dummy data
tels.add("345343637"); //dummy data
//you should get the data from your own list!!!

listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,int pos, long id) {

            Intent i = new Intent(CurrentClass.this, NextClass.class);
            i.putExtra("name", names.get(pos) );
            i.putExtra("tel", tels.get(pos) );
            startActivity(i);
        }
}

在 NextClass.class 中

   Intent intent= getIntent();
   String name = intent.getStringExtra("name");
   String tel = intent.getStringExtra("tel");

【讨论】:

  • 抱歉这么久没有回复。忙于工作和学习...关于我收到的答案,谢谢,但是将信息发送到第二个活动不是我的问题。在填写信息并将新联系人添加到我的列表后,我努力的是让新联系人的名称可以点击(您已经回答了这个问题)并让它将我发送到第二个活动,并且能够做到它与我添加的每个联系人。我需要将第二个 Activity 放在哪种循环中,以使其与列表中的新名称兼容,依此类推……?
  • 为什么需要循环?您希望在第二个活动中可以编辑姓名和电话吗?
  • 没有。当我单击列表中的新项目时,我希望它们出现在第二个活动中。
  • 在我的回答中,你已经得到了字符串格式的nametel,你只需要将它们设置为textview,myTextView.setText("name : " + name);myTextView.setText("tel : " + tel);
  • @user3395989 你在这里找到答案了吗?
【解决方案2】:
    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,int position, long id) {

            Intent i = new Intent(getApplicationContext(),SecondActivity.class);
           /*note you can use i.putExtra(tag,value); to add as many item specific variable you want your second activity to handle*/ 
            startActivity(i);

        }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-22
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多