내 MainActivity에서 내 MainActivity에 대한 새 텍스트 뷰를 만들고 싶습니다. 나는 이것을 시도했다. 내가 도대체 뭘 잘못하고있는 겁니까?다른 활동에 텍스트 뷰 추가
주요 활동 (이 activity_main로 이동하고 마지막에 Main2Activity로 변경하는 의도한다) 당신이 텍스트와 텍스트 뷰를 (추가 suposed되는이 활동에서
package com.example.gabriel.apppapa;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.*;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
int y,m,a,d,v,r,g;
long dr;
double idr, dida, dda;
Spinner Proyecto;
String Sproyecto;
TextView nuevo_proyecto;
MenuItem nuevo;
Button añadir;
View ll;
int dmes;
BroadcastReceiver textViewReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ll = findViewById(R.id.lnlayout);
final Calendar calendar = Calendar.getInstance();
y = calendar.get(Calendar.YEAR);
m = calendar.get(Calendar.MONTH) + 1;
d = calendar.get(Calendar.DAY_OF_MONTH);
calcularColor();
cdiasmes();
nuevo = (MenuItem) findViewById(R.id.mas);
BroadcastReceiver textViewReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
addTextView();
}
};
LocalBroadcastManager.getInstance(this).registerReceiver(textViewReceiver, new IntentFilter("createtextview"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.mas:
Intent next_screen = new Intent(MainActivity.this, Main2Activity.class);
startActivity(next_screen);
//finish();
default:
return super.onOptionsItemSelected(item);
}
}
public void calcularColor(){
idr = y/15.0;
dida = idr - ((int)idr);
dda = dida*255.0;
a = (int)Math.round(dda);
g = (int)Math.round(m*255.0/12.0);
r = (int)Math.round(d*255.0/28.0);
}
public void cdiasmes(){
if(m == 1||m == 3||m == 5||m == 7||m == 8||m == 10||m == 12){
dmes = 31;
}
else if (m == 4||m == 6||m == 9||m == 11){
dmes = 30;
}
else {
dmes = 28;
}
}
public void addTextView(){
TextView nproyecto = new TextView(this);
nproyecto.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
nproyecto.setBackgroundColor(Color.rgb(r,g,a));
if(((r+g+a)/3)>382.5){
nproyecto.setTextColor(Color.WHITE);
}
else {
nproyecto.setTextColor(Color.BLACK);
}
nproyecto.setText(nuevo_proyecto.getText());
((LinearLayout)ll).addView(nproyecto);
}
@Override
public void onDestroy(){
super.onDestroy();
LocalBroadcastManager.getInstance(this).unregisterReceiver(textViewReceiver);
}
} Main2Activity을 (글고 치기는) 테 activity_main하고를 표시 할 경우) 그 일을 후 주요 활동에
package com.example.gabriel.apppapa;
import android.content.Intent;
import android.graphics.Color;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.Calendar;
public class Main2Activity extends AppCompatActivity {
int y,m,a,d,g,r,dmes;
double idr, dida, dda;
Button añadir;
View ll;
EditText nuevo_proyecto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
final Calendar calendar = Calendar.getInstance();
y = calendar.get(Calendar.YEAR);
m = calendar.get(Calendar.MONTH)+1;
d = calendar.get(Calendar.DAY_OF_MONTH);
nuevo_proyecto = (EditText) findViewById(R.id.nuevo_proyecto_nombre);
añadir = (Button) findViewById(R.id.añadir);
cdiasmes();
calcularColor();
añadir.setBackgroundColor(Color.rgb(r,g,a));
nuevo_proyecto.setHint(String.valueOf(r)+','+String.valueOf(g)+','+String.valueOf(a));
if ((r+g+a)<383) {
añadir.setTextColor(Color.WHITE);
} else {
añadir.setTextColor(Color.BLACK);
}
añadir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LocalBroadcastManager.getInstance(Main2Activity.this).sendBroadcast(new Intent("createtextview"));
}
});
}
public void cdiasmes(){
if(m == 1||m == 3||m == 5||m == 7||m == 8||m == 10||m == 12){
dmes = 31;
}
else if (m == 4||m == 6||m == 9||m == 11){
dmes = 30;
}
else {
dmes = 28;
}
}
public void calcularColor(){
idr = y/15.0;
dida = idr - ((int)idr);
dda = dida*255.0;
a = (int)Math.round(dda);
g = (int)Math.round(m*255.0/12.0);
r = (int)Math.round(d*255.0/dmes);
}
}
왜 XML로 TextView를 만들고 Java를 사용하여 데이터와 배경색을 설정하지 않습니까? 그렇게 단순해질 수 있습니다. –
나는 tan one textview를 더 추가하고자하기 때문에 –