'''
package com.example.pillappreal;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.sql.Array;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
public ArrayList<Drug> list = new ArrayList<>();
public ArrayList<String> testList = new ArrayList<>();
public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void addNewDrug(View view) {
Intent intent = new Intent(this, AddNewDrugActivity.class);
startActivity(intent);
}
public void testMethod(View view) {
Intent intent = new Intent(this, MainActivity.class);
}
public void addNewDrug(Drug drug) {
list.add(drug);
if (list.size() > 0) {
Log.d("actually works ffs", list.get(0).name);
for (int i = 0; i < 5; i ) {
LinearLayout linearLayout = findViewById(R.id.rootLayout);
// Create TextView programmatically.
TextView textView = new TextView(this);
textView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
textView.setGravity(Gravity.CENTER);
textView.setText(list.get(i).name);
// Add TextView to LinearLayout
if (linearLayout != null) {
linearLayout.addView(textView);
}
}
Log.d("Mainlist", list.get(0).name);
}
}
}
'''
文本視圖實際上不會在應用程式中創建。我知道 textview 代碼有效,因為當我使用它在 onCreate 方法中列印出“測驗”時,它有效。我知道串列 arraylist 從幫助程式類中獲取其物件,因為 Log.d 顯示了 addNewDrug 方法中的值。由于某種原因,textView 代碼不起作用,即使我使用字串而不是陣列串列中的值,我也不知道為什么。
uj5u.com熱心網友回復:
為什么要以編程方式創建 TextView?您可以隱藏和顯示具有可見性的 TextView。
如果要根據用戶事件添加新的 TextView,可以使用 ListView 或 RecyclerView
uj5u.com熱心網友回復:
串列視圖示例
xml:
<ListView
android:id="@ id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Java代碼:
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
test();
}
private void test() {
ArrayList arrayList = new ArrayList();
arrayList.add("abcd");
arrayList.add("1234");
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(adapter);
}
uj5u.com熱心網友回復:
首先,您的 listView 需要一個 xml(名稱:my_list.xml)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@ id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/checkBox"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/checkBox"
android:layout_marginStart="8dp"
app:layout_constraintBottom_toBottomOf="@id/checkBox"
android:text="TextView" />
<CheckBox
android:id="@ id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
然后你應該創建一個資料類(名稱 MyData.java)
public class MyData {
String myText;
boolean myBool;
public MyData(String myText, boolean myBool) {
this.myText = myText;
this.myBool = myBool;
}
public String getMyText() {
return myText;
}
public void setMyText(String myText) {
this.myText = myText;
}
public boolean isMyBool() {
return myBool;
}
public void setMyBool(boolean myBool) {
this.myBool = myBool;
}
}
然后你必須創建一個配接器(名稱 MyAdapter.java)
public class MyAdapter extends ArrayAdapter<MyData> {
private ArrayList<MyData> dataSet;
private Context context;
private int resource;
public MyAdapter(@NonNull Context context, int resource, @NonNull ArrayList<MyData> dataSet) {
super(context, resource, dataSet);
this.context = context;
this.resource = resource;
this.dataSet = dataSet;
}
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View rowView = inflater.inflate(resource, parent, false);
TextView textView = rowView.findViewById(R.id.textView);
CheckBox checkBox = rowView.findViewById(R.id.checkBox);
textView.setText(dataSet.get(position).myText);
checkBox.setChecked(dataSet.get(position).myBool);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
// do something here
}
});
return rowView;
}
}
最后你可以使用你的資料:)(我在 MainActivity 中瘋了)
public class MainActivity extends AppCompatActivity {
ListView listView;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
test();
}
private void test() {
ArrayList<MyData> myList = new ArrayList<>();
MyData data1 = new MyData("Text1", true);
MyData data2 = new MyData("Text2", false);
myList.add(data1);
myList.add(data2);
adapter = new MyAdapter(getBaseContext(), R.layout.my_list, myList);
listView.setAdapter(adapter);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/445236.html
上一篇:androidx.preference.SwitchPreferenceCompat無法轉換為androidx.preference.PreferenceGroup
