2014-04-17 100 views
0

长按一个列表视图项(列表视图行只包含一个TextView)后,动态创建的EditText应该出现在相应的列表视图行中。我如何设法做到这一点?将EditText动态添加到ListView行

感谢

回答

0

你将不得不延长一个ArrayAdapter(如果您还没有完成),而做到这一点的方法getView()

该方法的第二个参数是View(通常称为convertView,但不一定)。说得很模糊,这个View实际上代表了当前行的布局,所以你需要在这个方法中加入EditText

@Override 
public View getView(final int position, View convertView, final ViewGroup parent) { 
    LinearLayout rootLinearLayout = (LinearLayout) convertView.findViewById(R.id.root_ll); 

    EditText et = new EditText(this); 
    // Set additional parameters to et 
    ... 

    rootLinearLayout.addView(et); 

    ... 
    return convertView; 
} 
+0

谢谢!你能告诉我如何告诉ArrayAdapter在onContextItemSelected()中选择了哪个选项?根据这个选项,我想只将EditTest添加到特定的行。 – null

+0

你可以在你的'ArrayAdapter'中声明一个'public'方法,这样你就可以从'Activity'中调用'adapter.setMyOption(chosenOption)',但我认为你可以自定义每一行的最好方法是在你的'getView )'方法并在这里执行逻辑。只需检查是否有条件发生,并根据它显示或不显示“EditText”。 – nKn