我需要更改数据表中一系列标题单元格的文本.
为了实现这一点,我需要检索并存储分配给这些单元格的视图ID,以便稍后可以使用它们来识别这些单元格视图.
但是,当我尝试获取刚刚膨胀的单元格视图的ID时,它总是返回-1.
这是我的示例代码:
@Override
public View getView(final int row, final int column, View converView, ViewGroup parent) {
if (converView == null) {
converView = inflater.inflate(getLayoutResource(row, column), parent, false);
if (row == -1){
int viewId = converView.getId();
setHeaderId(viewId, column+1);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
尽管视图id已经被分配并且在代码调试期间可以查看,但上面代码中的converView.getId()返回-1.例如,我在调试期间可以看到以下内容:converView = LinearLayout(id = 830042440680)
知道为什么我在上面的代码中得到-1(= NO_ID)?
我在操作栏中使用微调器进行导航.问题是,当所选项与先前选择的项相同时,不会调用onNavigationItemSelected.我在这里,这里 和这里都看过类似的问题, 但没有一个提供工作解决方案,特定于操作栏中所需的下拉导航.
我使用以下代码:
public class TestSpinner extends Activity implements
ActionBar.OnNavigationListener {
private Integer mPosition;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ActionBar actionBar = getActionBar();
final String[] EventTypes = getResources().getStringArray(
R.array.spinner_items);
mPosition = -1;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
actionBar.getThemedContext(),
android.R.layout.simple_spinner_item, android.R.id.text1,
EventTypes);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(adapter, this);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
Run Code Online (Sandbox Code Playgroud)
....
@Override
public boolean onNavigationItemSelected(int position, long id) {
if (mPosition > -1) {
mPosition = position;
// execute required code on spinner …Run Code Online (Sandbox Code Playgroud)