我已经与团队blox treeview合作了大约3个月,没有任何问题,但是在从0.1.0更新到(0.1.1或0.1.2)之后,我经历了以下奇怪的情况。我试图重现使用以下代码时遇到的情况:
1)TreeView测试.类:----------
public class treeviewtest extends appcompatactivity{
private static final string tag=“TreeView测试”;
私人抽屉布局
私人行动:自动切换抽屉;
私有框架布局布局布局;
私人TreeView Treev_TreeView_Out;
专用basetreeadapter适配器输出;
私人TreeView Treev_TreeView_in;
private basetreeadapter适配器_in;
private textview-tv-treeview-in;
私有按钮b_treeview_in;
私人视图视图;
私有treenode mccurrentnodeout;
私有treenode mcurrentnodein;
私有列表<string>项;
@重写
protected void oncreate(@nullable bundle savedinstancestate){
super.oncreate(保存的状态);
setContentView(r.layout.treeview-out);
items=new arraylist<string>();
对于(int i=0;i<=10;i++){
如果(i=0){
增加(i,“a”+“”+“b”);
}否则{
增加(i,“a”+i+“”+“b”+i);
}
}
//外视图-------------------------------启动
dl_treeview_out=(drawerlayout)findView byid(r.id.dl_treeview_out);
drawerToggle=new actionBardrawerToggle(this,dl_treeview_out,r.string.open,r.string.close){
已打开公共void OnDrawerOpened(View DrawerView){
invalidOptionsMenu();
}
公共空间关闭(视图){
invalidOptionsMenu();
}
};
尝试{
getSupportActionBar().setDisplayHomeAsupEnabled(true);
getSupportActionBar().setHome按钮已启用(true);
}catch(异常E){
log e.e(标签,“”,e);
}
treev_treeview_out=(treeview)dl_treeview_out.findView byid(r.id.treev_treeview_out);
treev_treeview_out.setonitemlicklistener(new adapterview.onitemlicklistener()。{
@重写
public void OnItemClick(adapterView<?>adapterview,视图,int i,long l){
mcurrentnodeout=适配器_out.getnode(i);
if(mcurrentNodeOut.GetData().ToString().Contains(“A”)){
fl_treeview_out.removeAllView();
添加视图(inview);
tv treeview_in.settext(“in view”);
b_treeview_in.settext(“~”);
treenode innode=新treenode(“b”);
setrootnode(innode)中的适配器;
打开抽屉(gravity.start,true);
}
}
(});
适配器out=new basetreeadapter<viewholderout>(treeviewtest.this,r.layout.treeviewout节点){
@非空
@重写
公共视图保持器输出到创建视图保持器(视图视图){
返回新的视图保持器输出(视图);
}
@重写
public void onbindviewholder(viewholderout viewholder,对象数据,int位置){
viewholder.tv_out.settext(data.toString());
}
};
treev_treeview_out.setadapter(适配器_out);
treenode outnode=新treenode(“A”);
适配器out.setrootnode(outnode);
fl_treeview_out=(framelayout)dl_treeview_out.findViewByID(r.id.fl_treeview_out);
//外视图--------------------------结束
//视图中--------------------------开始
inview=getlayoutinflator().inflat(r.layout.treeview_in,空);
treev_treeview_in=(treeview)inview.findViewByID(r.id.treev_treeview_in);
.setOnitEmclickListener中的treev_treeview_(new adapterview.OnitEmclickListener()。{
@重写
public void OnItemClick(adapterView<?>adapterview,视图,int i,long l){
mcurrentnodein=适配器_in.getnode(i);
if(mcurrentnodein.getdata().toString().contains(“b”)){
toast.makeText(getApplicationContext(),“中的数据:”+mccurrentNodein.getData().toString(),toast.length_long).show();
}
}
(});
adapter_in=new basetreeadapter<viewholderin>(treeviewtest.this,r.layout.treeview_in_node){
@非空
@重写
创建视图持有者(视图)时的公共视图持有者{
返回新的viewholderin(视图);
}
@重写
public void onbindviewholder(viewholderin viewholder,对象数据,int位置){
viewholder.tv_in.settext(data.toString());
}
};
treev_treeview_in.setadapter(适配器_in);
tv_treeview_in=(textview)inview.findview byid(r.id.tv_treeview_in);
b_treeview_in=(button)inview.findview byid(r.id.b_treeview_in);
.setOnClickListener中的b_treeview_(new view.onClickListener()。{
@重写
公共void onclick(视图){
makeSelectListDialog(“select”,treeviewTest.this,items,new dialogInterface.onclickListener()。{
@重写
public void onclick(dialoginterface dialoginterface,int i){
尝试{
string[]data_split=items.get(i).split(“”);
如果(数据分割长度=2){
if(数据分割[0].包含(“A”)&data分割[1].包含(“B”)){
mccurrentnodeout.setdata(数据_split[0]);
适配器_in.getnode(0).setdata(data_split[1]);
adapter_in.notifydatachanged(adapter_in.getnode(0));
适配器out.notifydatachanged(mcurrentnodeout);
}
}
}catch(异常E){
e.printstacktrace();
}
}
},新建dialogInterface.onclickListener()。{
@重写
public void onclick(dialoginterface dialoginterface,int i){
}
})();
}
(});
//视图中-------------------------------结束
}
私有类viewholderout{
查看简历;
text查看电视输出;
视图保持器输出(视图视图){
cv-out=(cardview)view.findview byid(r.id.cv-out);
tv_out=(textview)cv_out.findview byid(r.id.tv_out);
}
}
私有类viewholderin{
CalVIEW CVIIN;
文本视图TVIIN;
视图保持器(视图){
cv_in=(cardview)view.findview byid(r.id.cv_in);
tv_-in=(textview)cv_-in.findview-byid(r.id.tv_-in);
}
}
public static<t>警报对话框MakeSelectListDialog(字符串提示,
context finalContext,list<t>列表项,final dialogInterface.onclickListener onyesListener,
最终对话框interface.onclicklistener onnolistener){
最终阵列适配器<t>适配=
新的arrayadapter<t>(finalContext,android.r.layout.select_dialog_item,listems);
alertDialog A=新建alertDialog.builder(finalContext)
.settitle(提示)
.setadapter(适应,onyesListener)
.setNegative按钮(“取消”,OnNoListener)
创建();
返回A;
}
@重写
public boolean onCreateOptions菜单{
返回super.onCreateOptions菜单;
}
@重写
已选择公共布尔值OnOptions项(MenuItem项){
如果(DrawerToggle.OnOptionsitemselected(item))。{
回归真实;
}否则{
返回super.onoptionsitemselected(item);
}
}
@重写
后处理时受保护的void(bundle savedinstancestate){
super.onpostcreate(保存的状态);
drawerToggle.syncState();
}
}
< /代码>
2)TreeView_-Out.xml:----------------
<?xml version=“1.0”encoding=“utf-8”?gt;
<android.support.v4.widget.drawerlayout(lt;android.support.v4.widget.drawerlayout)
xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
安卓:id=“@+id/dl_treeview_out”
android:layout_width=“匹配父级”
android:background=“@android:color/white”
android:layout_height=“match_parent”>
<android.support.design.widget.coordinatorlayout
android:layout_width=“匹配父级”
android:layout_height=“匹配父级”
android:background=“fff”>
<de.blox.treeview.treeview(lt;de.blox.treeview.treeview)
android:id=“@+id/treev_treeview_out”
android:layout_width=“匹配父级”
android:layout_height=“包装内容”
app:useMaxSize=“真”
app:linecolor=“@android:color/holo_blue_dark”/>
</android.support.design.widget.coordinatorlayout>
FrAMLALayOUT
android:layout_width=“320dp”
android:layout_height=“匹配父级”
android:layout_gravity=“开始”
android:id=“@+id/fl_treeview_out”>
</framelayout>
</android.support.v4.widget.drawerlayout>
< /代码>
3)treeview_out_node.xml:-------
<?xml version=“1.0”encoding=“utf-8”?gt;
<android.support.v7.widget.cardview
xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:card_view=“http://schemas.android.com/apk/res-auto”
安卓:id=“@+id/cv\u out”
android:layout_width=“包装内容”
android:layout_height=“包装内容”
android:layout_gravity=“中心”
android:layout_margin=“5dp”
卡视图:cardelevation=“18dp”
卡视图:contentpadding=“11dp”>
<线性布局
android:layout_width=“匹配父级”
android:layout_height=“匹配父级”
android:orientation=“垂直”>
文本视图
安卓:id=“@+id/tv-out”
android:layout_width=“包装内容”
android:layout_height=“包装内容”
android:layout_gravity=“中心”
android:gravity=“中心”
android:textcolor=“?附件/着色剂”
android:textstyle=“bold”/>
</linearlayout>
</android.support.v7.widget.cardview>
< /代码>
4)treeview_in.xml:--------
<?xml version=“1.0”encoding=“utf-8”?gt;
<线性布局
xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“匹配父级”
android:layout_height=“包装内容”
android:orientation=“垂直”
安卓:weightsum=“100”
android:id=“@+id/ll_treeview_in”
android:layout_gravity=“开始”>
<相对布局
android:layout_width=“匹配父级”
android:layout_height=“50dp”
安卓:布局
android:background=“@color/colorPrimaryDark”
android:layout_gravity=“中心”
android:orientation=“水平”>
文本视图
android:layout_width=“包装内容”
android:layout_height=“50dp”
安卓:textstyle=“bold”
android:gravity=“中心”
android:layout_tostartof=“@id/b_treeview_in”
android:layout_AlignParentStart=“真”
android:layout_gravity=“中心”
安卓:background=“?属性/颜色主要“
android:textcolor=“@android:color/white”
android:id=“@+id/tv_treeview_in”/>
按钮
android:layout_width=“包装内容”
android:layout_height=“45dp”
android:layout_AlignParentEnd=“真”
android:textalcaps=“假”
android:layout_marginend=“2.5dp”
android:layout_marginstart=“2.5dp”
android:layout_margintop=“2.5dp”
android:layout_marginbottom=“2.5dp”
android:textcolor=“@android:color/white”
android:background=“@color/colorprimary”
android:layout_gravity=“中心”
android:gravity=“中心”
android:id=“@+id/b_treeview_in”/>
</relativelayout>
<android.support.design.widget.coordinatorlayout
android:layout_width=“匹配父级”
安卓:布局
android:layout_height=“匹配父级”
xmlns:app=“http://schemas.android.com/apk/res-auto”
android:background=“fff”>
<de.blox.treeview.treeview(lt;de.blox.treeview.treeview)
android:id=“@+id/treev_treeview_in”
android:layout_width=“匹配父级”
android:layout_height=“匹配父级”
app:levelseparation=“20dp”
app:linecolor=“@android:color/holo_green_light”/>
</android.support.design.widget.coordinatorlayout>
</linearlayout>
< /代码>
5)treeview_in_node.xml:--------------------
<?xml version=“1.0”encoding=“utf-8”?gt;
<android.support.v7.widget.cardview
xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:card_view=“http://schemas.android.com/apk/res-auto”
安卓:id=“@+id/cv\u in”
android:layout_width=“包装内容”
android:layout_height=“包装内容”
android:layout_gravity=“中心”
android:layout_margin=“5dp”
卡视图:cardelevation=“18dp”
卡视图:contentpadding=“11dp”>
<线性布局
android:layout_width=“匹配父级”
android:layout_height=“匹配父级”
android:orientation=“垂直”>
文本视图
android:id=“@+id/tv-in”
android:layout_width=“包装内容”
android:layout_height=“包装内容”
android:layout_gravity=“中心”
android:gravity=“中心”
android:textcolor=“?附件/着色剂”
android:textstyle=“bold”/>
</linearlayout>
</android.support.v7.widget.cardview>
< /代码>
6)在上面的代码中,我创建了两个树视图(一个直接位于活动内部,另一个位于此活动的抽屉中),每个树视图有一个块。First TreeView Block contains data started with a(a,a1,a2,…),where as second TreeView Block contains data started with b(b,b1,b2,…).The idea here is that I'm trying tochange the data of First TreeView Block and second TreeView Block at the same time.by clicking a button from inside the drawer(b_treeview_in)并从打开的列表中选择数据。上述代码在此库的0.1.0版本中正常工作(两个TreeView块的数据都已更新),但在更新到版本(0.1.1或0.1.2)后工作不正常(第一个TreeView块数据已更新,但第二个TreeView块数据未更新)。注意:在这两种情况下,如果我检查数据,我会发现它更改为从列表中选择的内容,但在第二个TreeView块的情况下,它不会更改为选择的内容。
7)如果此问题是由notifyDataChanged()引起的,那么为什么它对第一个TreeView块有效?
< p>8)
public class TreeViewTest extends AppCompatActivity {
private static final String TAG = "TreeViewTest";
private DrawerLayout dl_treeview_out;
private ActionBarDrawerToggle drawerToggle;
private FrameLayout fl_treeview_out;
private TreeView treev_treeview_out;
private BaseTreeAdapter adapter_out;
private TreeView treev_treeview_in;
private BaseTreeAdapter adapter_in;
private TextView tv_treeview_in;
private Button b_treeview_in;
private View inView;
private TreeNode mCurrentNodeOut;
private TreeNode mCurrentNodeIn;
private List<String> items;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.treeview_out);
items = new ArrayList<String>();
for(int i = 0 ; i<=10 ; i++){
if(i == 0) {
items.add(i, "A" + "_" + "B");
}else{
items.add(i, "A" + i + "_" + "B" + i);
}
}
// Out View -------------------------------- START
dl_treeview_out = (DrawerLayout) findViewById(R.id.dl_treeview_out);
drawerToggle = new ActionBarDrawerToggle(this, dl_treeview_out , R.string.open, R.string.close) {
public void onDrawerOpened(View drawerView) {
invalidateOptionsMenu();
}
public void onDrawerClosed(View view) {
invalidateOptionsMenu();
}
};
try {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}catch (Exception e){
Log.e(TAG , " " , e);
}
treev_treeview_out = (TreeView) dl_treeview_out.findViewById(R.id.treev_treeview_out);
treev_treeview_out.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
mCurrentNodeOut = adapter_out.getNode(i);
if(mCurrentNodeOut.getData().toString().contains("A")){
fl_treeview_out.removeAllViews();
fl_treeview_out.addView(inView);
tv_treeview_in.setText("In View");
b_treeview_in.setText("~");
TreeNode inNode = new TreeNode("B");
adapter_in.setRootNode(inNode);
dl_treeview_out.openDrawer(Gravity.START , true);
}
}
});
adapter_out = new BaseTreeAdapter<ViewHolderOut>(TreeViewTest.this, R.layout.treeview_out_node) {
@NonNull
@Override
public ViewHolderOut onCreateViewHolder(View view) {
return new ViewHolderOut(view);
}
@Override
public void onBindViewHolder(ViewHolderOut viewHolder, Object data, int position) {
viewHolder.tv_out.setText(data.toString());
}
};
treev_treeview_out.setAdapter(adapter_out);
TreeNode outNode = new TreeNode("A");
adapter_out.setRootNode(outNode);
fl_treeview_out = (FrameLayout) dl_treeview_out.findViewById(R.id.fl_treeview_out);
// Out View -------------------------------- END
// In View -------------------------------- START
inView = getLayoutInflater().inflate(R.layout.treeview_in , null);
treev_treeview_in = (TreeView) inView.findViewById(R.id.treev_treeview_in);
treev_treeview_in.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
mCurrentNodeIn = adapter_in.getNode(i);
if(mCurrentNodeIn.getData().toString().contains("B")){
Toast.makeText(getApplicationContext() , "Data In: " + mCurrentNodeIn.getData().toString() , Toast.LENGTH_LONG).show();
}
}
});
adapter_in = new BaseTreeAdapter<ViewHolderIn>(TreeViewTest.this, R.layout.treeview_in_node) {
@NonNull
@Override
public ViewHolderIn onCreateViewHolder(View view) {
return new ViewHolderIn(view);
}
@Override
public void onBindViewHolder(ViewHolderIn viewHolder, Object data, int position) {
viewHolder.tv_in.setText(data.toString());
}
};
treev_treeview_in.setAdapter(adapter_in);
tv_treeview_in = (TextView) inView.findViewById(R.id.tv_treeview_in);
b_treeview_in = (Button) inView.findViewById(R.id.b_treeview_in);
b_treeview_in.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
makeSelectListDialog("Select", TreeViewTest.this, items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
try {
String[] data_split = items.get(i).split("_");
if(data_split.length == 2){
if(data_split[0].contains("A") && data_split[1].contains("B")){
mCurrentNodeOut.setData(data_split[0]);
adapter_in.getNode(0).setData(data_split[1]);
adapter_in.notifyDataChanged(adapter_in.getNode(0));
adapter_out.notifyDataChanged(mCurrentNodeOut);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
}
});
// In View -------------------------------- END
}
private class ViewHolderOut {
CardView cv_out;
TextView tv_out;
ViewHolderOut(View view) {
cv_out = (CardView) view.findViewById(R.id.cv_out);
tv_out = (TextView) cv_out.findViewById(R.id.tv_out);
}
}
private class ViewHolderIn {
CardView cv_in;
TextView tv_in;
ViewHolderIn(View view) {
cv_in = (CardView) view.findViewById(R.id.cv_in);
tv_in = (TextView) cv_in.findViewById(R.id.tv_in);
}
}
public static <T> AlertDialog makeSelectListDialog(String prompt,
Context finalContext, List<T> listItems, final DialogInterface.OnClickListener onYesListener,
final DialogInterface.OnClickListener onNoListener) {
final ArrayAdapter<T> adapt =
new ArrayAdapter<T>(finalContext, android.R.layout.select_dialog_item, listItems);
AlertDialog a = new AlertDialog.Builder(finalContext)
.setTitle(prompt)
.setAdapter(adapt, onYesListener)
.setNegativeButton("Cancel", onNoListener)
.create();
return a;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (drawerToggle.onOptionsItemSelected(item)) {
return true;
}else {
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
drawerToggle.syncState();
}
}
2)TreeView_-Out.xml:----------------
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/dl_treeview_out"
android:layout_width="match_parent"
android:background="@android:color/white"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff">
<de.blox.treeview.TreeView
android:id="@+id/treev_treeview_out"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:useMaxSize="true"
app:lineColor="@android:color/holo_blue_dark"/>
</android.support.design.widget.CoordinatorLayout>
<FrameLayout
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:id="@+id/fl_treeview_out">
</FrameLayout>
</android.support.v4.widget.DrawerLayout>
3)treeview_out_node.xml:-------
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cv_out"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
card_view:cardElevation="18dp"
card_view:contentPadding="11dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_out"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="?attr/colorAccent"
android:textStyle="bold"/>
</LinearLayout>
</android.support.v7.widget.CardView>
4)treeview_in.xml:--------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="100"
android:id="@+id/ll_treeview_in"
android:layout_gravity="start">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="10"
android:background="@color/colorPrimaryDark"
android:layout_gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textStyle="bold"
android:gravity="center"
android:layout_toStartOf="@id/b_treeview_in"
android:layout_alignParentStart="true"
android:layout_gravity="center"
android:background="?attr/colorPrimary"
android:textColor="@android:color/white"
android:id="@+id/tv_treeview_in"/>
<Button
android:layout_width="wrap_content"
android:layout_height="45dp"
android:layout_alignParentEnd="true"
android:textAllCaps="false"
android:layout_marginEnd="2.5dp"
android:layout_marginStart="2.5dp"
android:layout_marginTop="2.5dp"
android:layout_marginBottom="2.5dp"
android:textColor="@android:color/white"
android:background="@color/colorPrimary"
android:layout_gravity="center"
android:gravity="center"
android:id="@+id/b_treeview_in"/>
</RelativeLayout>
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_weight="90"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#fff">
<de.blox.treeview.TreeView
android:id="@+id/treev_treeview_in"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:levelSeparation="20dp"
app:lineColor="@android:color/holo_green_light"/>
</android.support.design.widget.CoordinatorLayout>
</LinearLayout>
5)treeview_in_node.xml:-----------------
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cv_in"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
card_view:cardElevation="18dp"
card_view:contentPadding="11dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_in"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="?attr/colorAccent"
android:textStyle="bold"/>
</LinearLayout>
</android.support.v7.widget.CardView>
6)在上面的代码中,我创建了两个树视图(一个直接在活动中,另一个在该活动的抽屉中)每个街区一个。第一个TreeView块包含以a(a,a1,a2,…)开头的数据,第二个TreeView块包含以b(b,b1,b2,…)开头的数据。这里的想法是我正在努力同时更改第一个TreeView块和第二个TreeView块的数据从抽屉里点击一个按钮(B-TeReVIEWIN)从打开的列表中选择数据。上述代码在此库的0.1.0版本中正常工作(两个TreeView块的数据都已更新),但在更新到版本(0.1.1或0.1.2)后工作不正常(第一个TreeView块数据已更新,但第二个TreeView块数据未更新)。注意:在这两种情况下,如果我检查数据,我会发现它更改为从列表中选择的内容,但在第二个TreeView块中,它不会更改为选择的内容。
7)如果此问题是由notifyDataChanged()或adapter.getNode(),那么为什么它对第一个TreeView块有效?
8)
如果是0.1.0版

如果是0.1.1或0.1.2版
