Android 将多个名称从ListView放入单个视图
我正在使用ListView来显示名称数组。 它的代码如下所示:Android 将多个名称从ListView放入单个视图,android,listview,view,Android,Listview,View,我正在使用ListView来显示名称数组。 它的代码如下所示: public class Imenik extends ListActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final String[] seznam =
public class Imenik extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String[] seznam = getResources().getStringArray(R.array.seznam_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, seznam));
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if ("Baj And".equals(seznam[position]))
{ Intent i = new Intent(Imenik.this,Bajzelj.class); startActivity(i); lv.getItemIdAtPosition(position); }
else if ("Bes Jaz".equals(seznam[position]))
{ Intent i = new Intent(Imenik.this,Bajzelj.class); startActivity(i); }
}
});
}
}
Bundle bundle = getIntent().getExtras();
long _id = bundle.getLong("id");
}
可以这样显示它们吗?我不是一个程序员,所以我在这方面遇到了很多麻烦。我知道我应该以某种方式检查位置,但我不知道怎么做
提前感谢任何愿意帮助我的人 将ID传递给新活动的方式很奇怪。尝试使用以下方法:
Intent i = new Intent(Imenik.this,Bajzelj.class);
i.putExtra("id", id);
startActivity(i);
然后,一旦您参加了Bajzelj活动,请按如下方式获取id:
public class Imenik extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String[] seznam = getResources().getStringArray(R.array.seznam_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, seznam));
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if ("Baj And".equals(seznam[position]))
{ Intent i = new Intent(Imenik.this,Bajzelj.class); startActivity(i); lv.getItemIdAtPosition(position); }
else if ("Bes Jaz".equals(seznam[position]))
{ Intent i = new Intent(Imenik.this,Bajzelj.class); startActivity(i); }
}
});
}
}
Bundle bundle = getIntent().getExtras();
long _id = bundle.getLong("id");
遵循这个更有效的方法
package com.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class Test extends Activity{
public Map<String,Object> userData;
public static List<Object> userList;
String[] name = {"name_one","name_two","name_three","name_four","name_five"};
String[] lastName = {"lastName_one","lastName_two","lastName_three","lastName_four","lastName_five"};
String[] telephoneNumber = {"telephoneNumber_one","telephoneNumber_two","telephoneNumber_three","telephoneNumber_four","telephoneNumber_five"};
String[] mobileNumber = {"mobileNumber_one","mobileNumber_two","mobileNumber_three","mobileNumber_four","mobileNumber_five"};
String[] skypeUserName = {"skypeUserName_one","skypeUserName_two","skypeUserName_three","skypeUserName_four","skypeUserName_five"};
String[] email = {"email_one","email_two","email_three","email_four","email_five"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
userList = new ArrayList<Object>();
for(int i=0;i<5;i++){
userList.add(getUserData(i));
}
ListView lv = (ListView)findViewById(R.id.list);
ListCustAdapter adapter = new ListCustAdapter(this, userList);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Intent i = new Intent(Test.this,Test2.class);
i.putExtra("position", position);
startActivity(i);
}
});
}
public Map<String,Object> getUserData(int i){
userData = new HashMap<String,Object>();
userData.put("name", name[i]);
userData.put("lastName", lastName[i]);
userData.put("telephoneNumber", telephoneNumber[i]);
userData.put("mobileNumber", mobileNumber[i]);
userData.put("skypeUserName", skypeUserName[i]);
userData.put("email", email[i]);
return userData;
}
}
package.com.test;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ListView;
公共类测试扩展了活动{
公共地图用户数据;
公共静态列表用户列表;
字符串[]name={“name\u one”、“name\u two”、“name\u three”、“name\u four”、“name\u five”};
字符串[]lastName={“lastName\u one”、“lastName\u two”、“lastName\u three”、“lastName\u four”、“lastName\u five”};
字符串[]电话号码={“电话号码1”、“电话号码2”、“电话号码3”、“电话号码4”、“电话号码5”};
字符串[]mobileNumber={“mobileNumber_one”、“mobileNumber_two”、“mobileNumber_two”、“mobileNumber_two”、“mobileNumber_two”、“mobileNumber_four”、“mobileNumber_five”};
字符串[]skypeUserName={“skypeUserName\u 1”、“skypeUserName\u 2”、“skypeUserName\u 3”、“skypeUserName\u 4”、“skypeUserName\u 5”};
字符串[]email={“email\u one”、“email\u two”、“email\u three”、“email\u three”、“email\u three”、“email\u three”};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
userList=newarraylist();
对于(int i=0;我不清楚这个问题……请您更清楚地指定。您正在列表视图中显示数组中的数据。单击每个项目时,您希望执行什么…?我正在尝试这样做-当我从列表视图中选择名称时,我希望它打开一个活动Bajzelj。然后根据我选择的名称,我希望o填写个人日期(每个人有不同的数据).对于活动Bajzelj,我只想使用一个具有空TextView和ImageView的xml。好的,我理解您的要求。您遇到的问题是..在准备xml文件或获取特定数据时。在获取特定数据时。它始终只显示第一人称数据,即使我从listview中选择第二人称,它也会显示再次重复相同的数据。谢谢,代码片段正是我所需要的。用户数据字段包括:姓名和姓氏、电话号码、手机号码、skype用户名、电子邮件。@user925185从哪里获取这些数据?从每个字段的数组或其他方式获取..?我自己将它们放入其中。我为每个人都提供了一个包含所有数据的函数对于那个人。我只需要弄清楚如何记住意图决定(我选择了哪个名称)并打开正确的一个。非常感谢。我欠你几杯啤酒:)…只有一件事不起作用,就是行中的userList-name.setText((String)((Map)Test.userList.get(position)).get(“name”)有问题;我已经在我的系统上进行了测试,一切正常…你有没有发现任何错误。。。?
package com.test;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ListCustAdapter extends BaseAdapter {
public Activity context;
private List<Object> list;
public ListCustAdapter(Activity context, List<Object> list) {
super();
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@SuppressWarnings("unchecked")
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(context);
tv.setText((String) ((Map<String, Object>) list.get(position)).get("name"));
return tv;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id = "@+id/list"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id = "@+id/name"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id = "@+id/last_name"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id = "@+id/telephoneNumber"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id = "@+id/mobileNumber"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id = "@+id/skypeUserName"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id = "@+id/email"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Test"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Test2"/>
</application>
</manifest>