gpt4 book ai didi

java - 无法使用特定对象填充 LinearLayout

转载 作者:行者123 更新时间:2023-12-02 12:02:58 28 4
gpt4 key购买 nike

我正在开发一个简单的消息应用程序(学习)。

我可以成功登录并查看仪表板 Activity 。但是,当仪表板 Activity 尝试初始化一些“伪消息”时,我收到 NullPointer 异常。

activity_dashboard.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context="com.example.messenger.DashboardActivity">

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">

<LinearLayout
android:id="@+id/containerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/dirtyBlue">

</LinearLayout>
</ScrollView>

</LinearLayout>

这是“我想为每条消息初始化的消息布局,并将它们放置在 ScrollView 的线性布局中

message.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_weight="1"
android:background="@color/dirtyWhite"
android:onClick="openMsg">

<TextView
android:id="@+id/senderUserText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sender Text"
android:textSize="20sp"/>
<TextView
android:id="@+id/msgText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Message Text!"/>

</LinearLayout>

这是 Dashboard Activity.java 中发生的事情

DashboardActivity.java

public class DashboardActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
ParseMessages();
}

这是“ParseMessages()”函数工作的部分。

Database_IO.java

public static List<Message> msgList;
public static List<Message> ParseMessageList()
{
GenerateRandomMessages();
return msgList;
}
public static void GenerateRandomMessages()
{
Message message1 = new Message();
message1.Message = "MSG1";
message1.senderID = "Sender1";
message1.recipientID = "Me";
message1.isRead = false;

Message message2 = new Message();
message1.Message = "MSG2";
message1.senderID = "Sender2";
message1.recipientID = "Me";
message1.isRead = true;

msgList.add(message1);
msgList.add(message2);
Log.e("Message 1", message1.Message);
Log.e("Message 2", message1.Message);
}

NullPointerException 显示这些行:

msgList.add(message1);
msgList.add(message2);

最佳答案

您需要初始化您的 msgList!

可选:您可能想要更正 message2(您当前仅将数据分配给 message1)

这样做:

 public static void GenerateRandomMessages()
{
//initialize msgList
msgList = new ArrayList();

//如果你想更正message2

   Message message2 = new Message();
message2.Message = "MSG2";
message2.senderID = "Sender2";
message2.recipientID = "Me";
message2.isRead = true;

msgList.add(message1);
msgList.add(message2);
Log.e("Message 1", message1.Message);
//here also, you were using message 1
Log.e("Message 2", message2.Message);

关于java - 无法使用特定对象填充 LinearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47115254/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com