Reputation: 138
I'm struggling with this code and every time i run it it crashes so i went back to it's normal state where i finished the custom adapter and connected it to the listview and the program ran very nicely, then i tried adding an intent to open another activity when you click on an item in the list i added an extra too to send a data from the main activity to view a list of text stored in the stings , before i finished all that and it went smoothly then i tried adding a custom view. here is my code.
MAinactivity.java
public class MainActivity extends AppCompatActivity {
private List <Word> words =new ArrayList<Word>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ListView listview ;
populatewordList();
populateListView();
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
private void populateListView() {
ArrayAdapter <Word> adapter = new MyListAdapter ();
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
}
private void populatewordList() {
words.add( new Word ("Xadiiska 1aad","Camalku waa Niyadda"));
words.add( new Word ("Xadiiska 2aad","Tiirarka lslaamka"));
words.add( new Word ("Xadiiska 3aad","Dhidibada lslaamka"));
words.add( new Word ("Xadiiska 4aad","Abuurista Aadamiga"));
words.add( new Word ("Xadiiska 5aad","Bidcada"));
words.add( new Word ("Xadiiska 6aad","Kadheeraanshaha Shubhada"));
words.add( new Word ("Xadiiska 7aad","Xurmada Muslimka"));
words.add( new Word ("Xadiiska 8aad","Qofa laguma waajibiyo wax ka badan awooddiisa"));
words.add( new Word ("Xadiiska 9aad","Wax la wada faray Nebiyada iyo Muslimiinta"));
words.add( new Word ("Xadiiska 10aad","Dhawrsoonaanta"));
words.add( new Word ("Xadiiska 11aad","Ha fara gelinin wax aadan shaqo ku lahayn"));
words.add( new Word ("Xadiiska 12aad","Kalgacaylka"));
words.add( new Word ("Xadiiska 13aad","Wax yaalaha dhiigga Muslimka Banneeya"));
words.add( new Word ("Xadiiska 14aad","Anshaxa wanaagsan"));
words.add( new Word ("Xadiiska 15aad","Carada"));
words.add( new Word ("Xadiiska 16aad","Naxariista"));
words.add( new Word ("Xadiiska 17aad","La Dhaqanka dadka"));
words.add( new Word ("Xadiiska 18aad","Gargaarka Alla"));
words.add( new Word ("Xadiiska 19aad","Xishoodka"));
words.add( new Word ("Xadiiska 20aad","Qumanaanta"));
words.add( new Word ("Xadiiska 21aad","Wax Jannada lagu galo"));
words.add( new Word ("Xadiiska 22aad","Falka Khayrka"));
words.add( new Word ("Xadiiska 23aad","Reebidda dulmiga"));
words.add( new Word ("Xadiiska 24aad","Wardigu waa sadaqo"));
words.add( new Word ("Xadiiska 25aad","Xilka saaran xubnaha bulshada"));
words.add( new Word ("Xadiiska 26aad","Shakiga sidaad uga bixi lahayd"));
words.add( new Word ("Xadiiska 27aad","Dardaaran"));
words.add( new Word ("Xadiiska 28aad","Jidka Jannada loo maro"));
words.add( new Word ("Xadiiska 29aad","Xuduudda Ilaahay"));
words.add( new Word ("Xadiiska 30aad","Wax llaahay iyo dadkuba kugu jeclaadaan"));
words.add( new Word ("Xadiiska 31aad","Ma bannaana adiyaddu"));
words.add( new Word ("Xadiiska 32aad","Asaaska doodaha"));
words.add( new Word ("Xadiiska 33aad","Reebidda Munkarka"));
words.add( new Word ("Xadiiska 34aad","ls-xaq dhawridda Xubnaha bulshada"));
words.add( new Word ("Xadiiska 35aad","Badbaadinta Bulshada"));
words.add( new Word ("Xadiiska 36aad","Deeqsimada llaahay"));
words.add( new Word ("Xadiiska 37aad","Qofka colaadiya Awliyada llaahay"));
words.add( new Word ("Xadiiska 38aad","Xaaladaha qofka aan loo qabanayn dambiga uu falo"));
words.add( new Word ("Xadiiska 39aad","Inaan la isku hilmaamin dunida"));
words.add( new Word ("Xadiiska 40aad","Hawo raaca"));
words.add( new Word ("Xadiiska 41aad","Khatarta shirkiga"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private class MyListAdapter extends ArrayAdapter <Word> {
public MyListAdapter (){
super(MainActivity.this,R.layout.list_view,words);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemview =convertView;
if (itemview==null){
itemview = getLayoutInflater().inflate(R.layout.list_view,parent,false);
}
Word currentWord = words.get(position);
TextView x_name =(TextView) itemview.findViewById(R.id.x_name);
x_name.setText(currentWord.getmXname());
TextView x_dis =(TextView) itemview.findViewById(R.id.x_dis);
x_dis.setText(currentWord.getmXdis());
return itemview;
}
}
}
Word.java
public class Word {
private String mXname;
private String mXdis;
public Word(String Xname, String Xdis) {
mXname = Xname;
mXdis = Xdis;
}
public String getmXname() {
return mXname;
}
public String getmXdis() {
return mXdis;
}
}
ViewActivity
public class ViewActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
TextView textView = (TextView) findViewById(R.id.textView);
Intent i = getIntent();
int Topic_content = i.getIntExtra("Name: ", 0);
textView.setText(Topic_content);
}
}
Upvotes: 1
Views: 681
Reputation: 231
Change in your MainActivity
- populateListView ArrayAdapter
to your adapter (MyListAdapter
) to do the right cast.
Double check that findViewById
aren't null
In your ViewActivity
, is best if you don't have spaces in getIntExtra
like: "name"
int Topic_content = i.getIntExtra("Name: ", 0);
Change this:
textView.setText(Topic_content);
to
textView.setText( String.valueOf(Topic_content) );
in the adapter there isn't any click event to pass int to activity
protected void goToView(int a) {
Intent i = new Intent(getActivity(), InteractionsActivity.class);
i.putExtra("name", a);
startActivity(i);
}
Upvotes: 0
Reputation: 83
Hello in this case you have to serialize the data then pass them to another activity. Please Check the links below.
Passing data through intent using Serializable
How to send an object from one Android Activity to another using Intents?
Upvotes: 1