簡體   English   中英

按鈕的設置可見性在 android 中不起作用

[英]setvisibility for button is not working in android

基本上這個想法是在點擊加號時在活動地址中添加地址,它將重定向到下一頁,用戶在提交時獲取地址表單,它將獲取地址並添加到以前的活動回收視圖。

場景:--

1-->當地址活動中的recycleview為空時,它顯示空文本並且按鈕不可見==>這里沒問題

2-->當地址活動中的recycleview不為空時,空文本消失了但按鈕不可見==>我看不到按鈕的可見性==>問題就在這里

這是我的代碼-->

class AddressActivity : AppCompatActivity(){
private lateinit var data: LiveData<MutableList<Address>>
private  var data1:Int = 0
var adapter: AddressAdapter? =null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.address)
    var mActionBarToolbar = findViewById<androidx.appcompat.widget.Toolbar>(R.id.toolbartable);
    setSupportActionBar(mActionBarToolbar);
    // add back arrow to toolbar
    if (getSupportActionBar() != null){
        getSupportActionBar()?.setDisplayHomeAsUpEnabled(true);
        getSupportActionBar()?.setDisplayShowHomeEnabled(true);
        getSupportActionBar()?.setHomeAsUpIndicator(R.drawable.ic_keyboard_arrow_left_black_24dp);

        //supportActionBar?.setTitle("Tables")
           getSupportActionBar()?.setTitle((Html.fromHtml("<font color=\"#FFFFFF\">" + getString(
               R.string.address) + "</font>")));

    }

    addbutton.findViewById<View>(R.id.addbutton).setOnClickListener {
        val intent = Intent(this, AddAddressActivity::class.java)
        startActivity(intent)
    }
    LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
        IntentFilter("custom-message1")
    )
    val recyclerView = findViewById<RecyclerView>(R.id.recyclerview)
    recyclerView.setHasFixedSize(true)
    recyclerView.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
    val adapter = AddressAdapter(applicationContext)

    recyclerView.adapter = adapter
    recyclerView.addItemDecoration(
        DividerItemDecoration(
            recyclerView.context,
            DividerItemDecoration.VERTICAL
        )
    )
    recyclerView.addOnScrollListener(object :
        RecyclerView.OnScrollListener() {
        override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
            super.onScrollStateChanged(recyclerView, newState)
            Log.e("RecyclerView", "onScrollStateChanged")
        }

        override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
            super.onScrolled(recyclerView, dx, dy)
        }
    })
    val application = application as CustomApplication
    data = application.database.AddressDao().getAddressesWithChanges()
    data.observe(this, Observer { words1 ->
        // Update the cached copy of the words in the adapter.
        words1?.let { adapter.updateData(it) }
    })
    if (!data.hasActiveObservers()) {
        ordernow.setVisibility(View.GONE)

        emptytext.setVisibility(View.VISIBLE)

    } else {
        ordernow.setVisibility(View.VISIBLE)

        emptytext.setVisibility(View.GONE)

    }


}

需要幫助謝謝

替換這個

data.observe(this, Observer { words1 ->
    // Update the cached copy of the words in the adapter.
    words1?.let { adapter.updateData(it) }
})
if (!data.hasActiveObservers()) {
    ordernow.setVisibility(View.GONE)

    emptytext.setVisibility(View.VISIBLE)

} else {
    ordernow.setVisibility(View.VISIBLE)

    emptytext.setVisibility(View.GONE)

}

 data.observe(this, Observer { words1 ->
            
            if (words1.size > 0) {
            ordernow.setVisibility(View.VISIBLE) emptytext . setVisibility (View.GONE)
        } else {
            ordernow.setVisibility(View.GONE) emptytext . setVisibility (View.VISIBLE)
        }
            
            words1?.let { adapter.updateData(it) }
        })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM