Итак, я недавно начал работать с Android Studio, чтобы узнать, как глубоко развиваться Java/Android. Не так уж много хороших уроков/уроков, но мне удалось найти немало. Я получил предыдущий опыт программирования с C++/C#, поэтому схватить это было не так сложно, но он запутывается до того момента, когда я отправляю этот вопрос, на который я не мог найти ответ.Несколько событий onClick в Android Studio
activity_main.xml
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_button"
android:id="@+id/btnAddItem"
android:onClick="onAddItem"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
Так я получил свою кнопку установить там, и я уже получил действия, возложенные на него, который в основном на щелчок добавляет ж/е текст был написан рядом Это. ТЕПЕРЬ все, что я хочу сделать, это добавить тост-сообщение каждый раз, когда его нажимают, но если я это сделаю с настройкой onClickListener, он добавляет элемент один раз, не отображает тост, затем после попытки добавить еще один он просто отображает тост и ничего не делает. (Я могу продолжать делать тост заново).
бит, где я пытаюсь сделать тост работу долго с каждой кнопки "Добавить" щелчок на публичной ничтожной onAddItem (View v)
MainActivity.java
package com.example.norbis.webtutorial;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.PopupWindow;
import android.widget.Toast;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class MainActivity extends ActionBarActivity {
ArrayList<String> items;
ArrayAdapter<String> itemsAdapter;
ListView lvItems;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvItems = (ListView) findViewById(R.id.lvItems);
items = new ArrayList<String>();
readItems();
itemsAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
lvItems.setAdapter(itemsAdapter);
items.add("First item");
items.add("Second Item");
setupListViewListener();
}
private void setupListViewListener() {
lvItems.setOnItemLongClickListener(
new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter,
View item, int pos, long id) {
items.remove(pos);
itemsAdapter.notifyDataSetChanged();
writeItems();
return true;
}
});
}
public void onAddItem(View v) {
EditText etNewItem = (EditText) findViewById(R.id.etNewItem);
String itemText = etNewItem.getText().toString();
itemsAdapter.add(itemText);
etNewItem.setText("");
writeItems();
//Basically this is the bit where I tried to add the listener.
button = (Button)findViewById(R.id.btnAddItem);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Item added", Toast.LENGTH_LONG).show();
}
});
}
private void readItems() {
File filesDir = getFilesDir();
File todoFile = new File(filesDir, "todo.txt");
try {
items = new ArrayList<String>(FileUtils.readLines(todoFile));
} catch (IOException e) {
items = new ArrayList<String>();
}
}
public void writeItems() {
File filesDir = getFilesDir();
File todoFile = new File(filesDir, "todo.txt");
try {
FileUtils.writeLines(todoFile, items);
}
catch (IOException e) {
e.printStackTrace();
}
}
@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);
}
}
Я не включил ссылку на учебник, так как я сделал это некоторое время назад, и до сих пор делал это только для учебных целей, для которых это предназначалось.
EDIT: Это ответ на этот вопрос, и я просто сосать излишне усложняющие вещи. Я бы порекомендовал вам, ребята, но пока у меня недостаточно репутации, спасибо, что помогли мне.
Спасибо большое! Я понятия не имею, почему я слишком усложняю все это. Я должен был попробовать это раньше, но, вероятно, не сохранил/перезагрузил эмулятор genymotion, поэтому я думал, что это не сработало. Приветствия за это. – Norbis
Рад, что это помогло! Если это правильный ответ для вас, отметьте его как правильно. – Karim
Opps, забыл про это, сделано. реквизит для вас. =] – Norbis