我在网格视图上有一个longClick方法,它不适用于底层ArrayList的0索引位置。但是,如果我只添加一个'SentenceButton',我可以将其删除,但如果我添加了许多'SentenceButton'则不能删除它。
SentenceButton类中的主要代码如下:
public boolean onLongClick(View view) {
boolean result = false;
SentenceButton btnSentence = (SentenceButton)view;
ArrayList<SentenceButton> temp = Utility.getSentenceArray();
if(temp.contains((SentenceButton)view));
result = Utility.getSentenceArray().remove(btnSentence);
Utility.getSentenceArray().trimToSize();
SBActivity.getmSentenceAdapter().notifyDataSetChanged();
return result;
}
这部分代码只是为了删除一个错误的条目。
这似乎不起作用,即。 remove,Utility.getSentenceArray的第一个元素,只能在另一个'SentenceButtons'上间歇工作。
奇怪的是,播放声音和从我用作内容视图的片段添加到Sentence视图似乎只连续工作两次然后似乎挂起,直到我旋转设备。 SoundButton类中包含相关代码:
public void onClick(View view) {
// To Do: add to current sentence
SoundThread sndThread = new SoundThread();
sndThread.start();
Utility.getSentenceArray().add(new SentenceButton(mContext, (SoundButton)view));
SBActivity.getmSentenceAdapter().notifyDataSetChanged();
}
这会将内容视图'SoundButton'添加为SentenceButton数组中的'SentenceButton'。更奇怪的是,如果我旋转设备足够多,它似乎将'SoundButton'添加为'SentenceButton'。它甚至在旋转发生时播放'SoundButton'但不是之前。就像SoundButton的onClick在某个地方排队一样。
轮换代码如下:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE)
{
setFragment(getmFrag());
mSentenceGridView.invalidate();
}
else if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_PORTRAIT)
{
setFragment(getmFrag());
mSentenceGridView.invalidate();
}
super.onConfigurationChanged(newConfig);
}
有人可以帮我解决这个问题。绝对是一个菜鸟,当然会添加任何相关的信息。
我正在尝试写一个音板来帮助我朋友的亲戚更好地沟通。
非常感谢,尤其是关于工作音板的教程。
我发现部分问题是没有正确创建按钮的ID