我正在尝试为Android开发财务经理应用。我目前正在使用Android Studio 3.0 Beta 5,而且我正在使用Java。
我想在MainActivity上创建一个列表,以便在提供新事务时,该事务的详细信息显示在旧事务下的MainActivity中,就像列表一样。
listview似乎不是一个好主意,因为我无法插入一个简单的布局来显示类别,交易量等作为列表的元素(或者我可以?)。因此,当我从TransactionActivity返回到MainActivity时,我正试图出现一个新的布局。
以下是我的MainActivity中onCreate方法的一些相关代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
XmlPullParser parser = getResources().getXml(R.xml.transaction);
AttributeSet attributes = Xml.asAttributeSet(parser);
Transaction transaction = (Transaction) getIntent().getSerializableExtra("Transaction"); // imports the transaction object from TransactionActivity
if (transaction != null) {
LinearLayout linearLayout = findViewById(R.id.layout_main);
LinearLayout transactionLayout = new LinearLayout(this, attributes);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linearLayout.addView(transactionLayout, layoutParams);
}
}
这是R.xml.transaction:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SKrt"/>
</LinearLayout>
我添加了一个简单的textView来检查它是否在创建事务后正确显示,但屏幕上没有任何内容。
有没有更好的方法来实现这一切?如果没有,如何在点击时显示此布局?
答案 0 :(得分:0)
首先,您应该将 transaction.xml 文件从xml文件夹移动到布局文件夹。然后你应该膨胀布局xml
View transactionLayout = View.inflate(getContext(), R.layout.transaction, null);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linearLayout.addView(transactionLayout, layoutParams);
在此之后你应该可以看到TextView。
你也可以使用ListView,但是你需要创建一个ListAdapter并在适配器的getView()方法中膨胀 transactionLayout 。
答案 1 :(得分:0)
要添加自定义布局,您需要创建一个。