我想制作一个具有此功能的新闻通讯应用程序,以便自己撰写帖子。 我正在尝试为按钮编写代码,但我一时陷入困境。我不知道如何在新的cardView中为新的textView设置位置。
这是MainActivity.java中的一段代码
package com.example.rame956.test;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ScrollView scrollView = new ScrollView(this);
}
//<...>
public void CreateNewPost(View view){
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
CardView card = new CardView(this);
TextView text = new TextView(this);
ImageView image = new ImageView(this);
}
}
抱歉,这是一个愚蠢的问题。我是android开发的新手。
答案 0 :(得分:0)
对于初学者来说,我假设您在MainActivity内至少有一个按钮,它将触发创建卡片视图的过程。因此,为回答您的问题,我将以编程方式从头开始创建一个全新的名片视图。删除您需要的元素,例如textview,按钮等。
// Wiring in my 2 main aspects relativeLayout + Button
relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
button = (Button) findViewById(R.id.btn);
//my trigger but in your case, it can be anything
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CardView card = new CardView(mContext);
// Set the CardView layoutParams
LayoutParams layoutParams = new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT
);
card.setLayoutParams(layoutParams );
// Setting different attributes
card.setRadius(9);
card.setContentPadding(15, 15, 15, 15);
card.setCardBackgroundColor(Color.parseColor("#FFC6D6C3"));
card.setMaxCardElevation(15);
card.setCardElevation(9);
// Initialize a new TextView to put in CardView
TextView tv = new TextView(mContext);
tv.setLayoutParams(layoutParams );
tv.setText("My CardView");
tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 30);
tv.setTextColor(Color.RED);
// Put the TextView inside CardView
card.addView(tv);
// Finally, add the CardView in root layout
relativeLayout.addView(card);
}
});
这里要注意的一件事是函数末尾的relativeLayout。您将需要有一个父布局,您将在其中放置卡片视图。当然,可以根据需要修改属性,即settext,backgroundcolour等。
如果您只是想将TextView插入到xml中预先存在的CardView中。这将是相同的概念。
card = (CardView)findViewById(R.id.cardView);
//generate your textview as above....
card.addView(textView);