티스토리 뷰
#포스팅하기
일단 포스팅을 하기 위해서는 어떤 방식으로 하는건지 봐야한다.
https://developers.facebook.com/docs/graph-api/reference/v2.6/user/feed
http://restfb.com/documentation/
여기 링크를 참고한다.
1. activity_write_post.xml 을 수정해준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.ktds.oph.customlistview.WritePostActivity">
<EditText android:id="@+id/etPost" android:inputType="textMultiLine" android:hint="포스트 내용을 입력하세요..." android:gravity="top" android:layout_width="match_parent" android:layout_height="match_parent" />
</LinearLayout>
|
EditText는 기본적으로 Single Line만 가능하기 때문에, android:inputType="textMultiLine" 이거를 입력해주면 html에서 얘기하는 textarea처럼 사용할 수 있다.
2. WritePostActivity.java
etPost 변수를 선언하고, UI 와 연결한다.
private EditText etPost;
.....
etPost = (EditText) findViewById(R.id.etPost);
Validation Check를 해준다. 글자를 입력하지 않았을 경우와 입력했을 경우를 구분하여 코드를 적는다.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if( itemId == R.id.done ){
//Validation Check
//아무것도 입력하지 않았다면,
if( etPost.getText().toString().length() == 0 ) {
//글자를 입력하라는 메시지를 띄운다.
Toast.makeText(WritePostActivity.this, "포스트 내용을 입력해주세요.", Toast.LENGTH_SHORT).show();
return false;
}
else {
//Facebook으로 Post전송...
Facebook myFacebook = new Facebook(this);
myFacebook.auth();
//글자를 적었다면 닫겠다.
finish();
}
return true;
}
return super.onOptionsItemSelected(item);
}
3. Facebook.java를 수정해준다.
Context가 MainActivity의 인스턴스인지 물어보고(instanceof : 상속관계), 그렇다면 아래 구문을 실행해라.
4. Facebook.java에 글 등록하는 메소드를 추가해준다.
/**
* 페이스북에 글 등록시키기
* @param message
*/
public void publishing(final String message){
//네트워크 통신을 위해 쓰레드를 돌린다.
new Thread(new Runnable() {
@Override
public void run() {
FacebookType facebookType = myFacebook.publish(
"me/feed", FacebookType.class, Parameter.with("message", message));
}
}).start();
}
5. Auth 메소드에 else if를 추가한다.
6. WritePostActivity.java
myFacebook 객체를 바깥으로 빼준다.
private Facebook myFacebook;
......
myFacebook = new Facebook(this);
writePost 메소드를 작성한다.
public void writePost(){
myFacebook.publishing(etPost.getText().toString());
finish();
}
전체 코드는 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | package com.ktds.oph.customlistview;
import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import android.widget.Toast;
import com.ktds.oph.customlistview.facebook.Facebook;
public class WritePostActivity extends ActionBarActivity {
private EditText etPost;
private Facebook myFacebook;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_write_post);
myFacebook = new Facebook(this);
setTitle("새 글 등록");
//actionBar 객체를 가져올 수 있다. ActionBar actionBar = getSupportActionBar();
//메뉴바에 '<' 버튼이 생긴다.(두개는 항상 같이다닌다) actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true);
etPost = (EditText) findViewById(R.id.etPost);
}
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.write_menu, menu); return true; }
@Override public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId();
if( itemId == R.id.done ){ //Validation Check //아무것도 입력하지 않았다면, if( etPost.getText().toString().length() == 0 ) { //글자를 입력하라는 메시지를 띄운다. Toast.makeText(WritePostActivity.this, "포스트 내용을 입력해주세요.", Toast.LENGTH_SHORT).show(); return false; } else {
//Facebook으로 Post전송... myFacebook.auth(); } return true;
} return super.onOptionsItemSelected(item); }
public void writePost(){ myFacebook.publishing(etPost.getText().toString()); finish(); } }
|
7. MainActivity.java 수정하기
'프로그래밍 > 안드로이드' 카테고리의 다른 글
Drawable Layout 실습하기 (1) | 2016.06.17 |
---|---|
Fragment 띄우기 (0) | 2016.06.16 |
[facebook 연동]메뉴바에 글쓰기 버튼과 뒤로가기 버튼 만들기 (0) | 2016.06.16 |
[facebook 연동] 메시지, 스토리, 링크 구분하여 뉴스피드 보여주기 (0) | 2016.06.16 |
ListView 로 리스트 만들기 (1) | 2016.06.13 |
- Total
- Today
- Yesterday
- Relative Layout
- 뒤로가기 버튼
- MVC
- facebook 연동
- 포스팅하기
- jQuery
- 예외처리
- sql
- aop
- spring
- 제이쿼리
- 메뉴바에 버튼 생성하기
- ERD
- 클래스
- 배열
- 게시판 만들기
- 메소드
- Linear Layout
- 뉴스피드 가져오기
- mongo db
- 쿼리
- JSP
- mybatis
- intent
- query
- 자바프로그래밍
- activity
- er다이어그램
- 글쓰기 버튼
- Erwin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |