#android #arrays #android-studio #android-studio-3.0
#Android #массивы #android-студия #android-студия-3.0
Вопрос:
Я пытаюсь передать два разных массива в класс BarActivity, но это класс представления, и он не позволит мне использовать намерение для передачи информации, как я думал, что смогу. Есть ли способ, которым я могу передать эти массивы в активность бара, чтобы я действительно мог начать создавать гистограмму.
это основное направление деятельности
public class MainActivity extends AppCompatActivity { EditText editText; ListView listView; ListAdapter listAdapter; Button btnCompute; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText=findViewById(R.id.edittext); listView=findViewById(R.id.listView); btnCompute=findViewById(R.id.btnCompute); editText.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { try { if(editText.getText().toString().isEmpty()) { listAdapter=null; listView.setAdapter(null); } else { String[] arr =editText.getText().toString().split(","); Intent i = new Intent(MainActivity.this,BarActivity.class); i.putExtra("Grades", arr); startActivity(i); listAdapter=new ListAdapter(MainActivity.this,arr); listView.setAdapter(listAdapter); } } catch (Exception e) { e.printStackTrace(); } return true; } return false; } }); btnCompute.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(listAdapter!=null) { Integer [] list=listAdapter.getList(); Intent intent = new Intent(MainActivity.this,BarActivity.class); intent.putExtra("Values", list); startActivity(intent); } } }); }
А это и есть барактивность
public class BarActivity extends View { //hash map Maplt;String, Floatgt; data = new HashMaplt;gt;(); private float barWidth = 60f; private float barSpace = 20f; private Paint mPaint; // Intent i = getIntent(); // String[] myGrades = i.getStringArrayExtra("Grade"); // Intent intent = Intent.getIntentOld(); // String[] myValues = intent.getStringArrayExtra("Values"); public BarActivity(Context context, AttributeSet attrs) throws URISyntaxException { super(context, attrs); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); // mRandom = new Random(); data.put("A", 0.20f); data.put("A-", 0.12f); data.put("F", 0.1f); } @Override protected void onDraw(Canvas canvas) { }
Закомментированная часть // Intent i = getIntent()
вообще не работает; она говорит мне использовать getIntentOld()
вместо этого, что также не работает.
Комментарии:
1. Отправляющая часть выглядит нормально, но вы не отправили свою получающую часть
2. вы пытаетесь открыть BarActivity как activity, но его представление. Сделайте это как действие и внутри него используйте пользовательский класс представления.