2012-03-31 90 views
0

我有一个问题,就像我有一个包含在公司工作的所有开发人员姓名的微调器一样。
我已经使用ArrayAdapter与一个数组,其名称为所有开发人员从数据库中提取。如何在Android中设置并获取微调器中的项目的编号

问题是,当我更新开发人员名称字段时,我得到的开发人员名称不足以更新数据,因为他们可能是公司中具有相同名称的多个开发人员。
所以现在我需要开发者的ID来更新它..
如何存储与Spinner开发商ID,这样我可以做到这一点。

例如,我想去做是我们在做HTML ::
<select>
<option id="1">Developer1</option>
<option id="2">Developer2</option>
<option id="3">Developer2</option>
<option id="4">Developer2</option>
</select>

其中ID连接将是数据库ID
我想在android中模仿这个。

这是我用当您执行setOnItemSelectedListener上的名字存储阵列::

String alldevelopers = null; 
try 
{ 
    ArrayList<NameValuePair> postP = new ArrayList<NameValuePair>(); 
    alldevelopers = CustomHttpClient.executeHttpPost("/fetchdevelopers.php", postP); 
    String respcl = alldevelopers.toString(); 
    alldevelopersParser dev = new alldevelopersParser(); 
    ow = dev.parseByDOM(respcl); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 

String developers[] = new String[ow.length]; //dev is a class object 
for (int n = 0; n < ow.length; n++) 
{ 
    developers[n] = ow.developer[n][2]; 
} 

这是将旋转阵列的微调..

final Spinner devl = (Spinner) findViewById(R.id.towner); 
devl.setOnItemSelectedListener(managetasks.this); 
ArrayAdapter<String> b = 
new ArrayAdapter<String>getApplicationContext(), 
android.R.layout.simple_spinner_item,developers); 
b.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); 
devl.setAdapter(b); 
+0

一个问题:微调器是否加载了与数据库中的顺序相同的开发者名称?考虑微调器内项目的位置,以确定相同位置的db中编程人员的ID可能是有用的吗? – Ant4res 2012-03-31 07:58:36

+0

是的......加载的顺序与数据库的顺序相同......但是那么开发人员的id不会以增量的方式出现,就好像某些开发人员被删除了那么他们的id就会丢失在列表中...所以我们无法直接将itemSelected位置与数据库中id的位置进行比较......是他们的任何其他方式,我的亲爱的朋友会根据ItemSelectedposition数字来搜索数据库。 – 2012-03-31 09:19:52

回答

1

代码微调那么你有方法,如

public void onItemSelected(AdapterView<?> adapterView, View view, 
        int position, long id) {} 

在这里你可以找到positi开启所选的开发人员名称,并使用此位置从数组中获取数据。

+0

这是为你工作吗? – Jitendra 2012-03-31 08:21:04

+0

Jitender ...你是对的,但那么我会如何比较数据库?只有我可以通过这是显示的位置和值...是他们的任何方式,我可以将开发人员的数据库id附加到微调器,以便当我从微调器中获取值时,我可以获取数据库身份证附加与该提取的项目.. ?? – 2012-03-31 09:23:26

+0

当您从arrayList 或任何集合中获取项目的整个记录​​时,您可以从collectionList的arrayList中获取该位置的整个对象。如果你仍然有问题,请分享你的代码。 – Jitendra 2012-03-31 09:43:14